SSM项目实战 之 Maven

目录

  • Maven
    • 简介
      • Maven是什么
      • Maven下载安装
    • Maven使用
      • Maven规定了一套默认的项目格式
      • 创建第一个Maven项目
      • Maven仓库
    • Maven常用命令
    • Maven作用范围(scope值)
    • Maven创建Web工程
      • 注意事项
      • tomcat插件

Maven

简介

Maven是什么

  • Maven是基于项目对象模型(POM,project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
  • 通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
  • 合理叙述项目间的依赖关系

Maven下载安装

http://maven.apache.org/download.cgi
安装
    直接解压就可以
目录结构
    bin
        包含了Maven的运行脚本文件
    boot
        Maven的依赖的类加载器
    conf
        Maven的全局配置文件(settings.xml),定制Maven的运行行为
        D:\java\mavenRepository
        把D:\java\mavenRepository作为本地仓库的路径,可以通过核心配置文件来改
    lib
        依赖jar包
maven环境变量配置
    配置的目的
        想要在任何地方都能够运行mvn命令
    配置两个一个Home 一个home/bin
        变量名:MAVEN_HOME
        变量值:D:\java\apache-maven-3.5.4
        变量名:Path
        变量值:D:\java\apache-maven-3.5.4\bin
打开命令行输入mvn -v 查看结果

Maven使用

Maven规定了一套默认的项目格式

src/main/java
    存放项目的.java文件
src/main/resources
    存放项目资源文件,如spring、struts2配置文件,db.properties
src/main/webapp
     存放jsp,css,image等文件
src/test/java
    存放所有测试.java文件,如JUnit测试类
src/test/resources
     测试资源文件
pom.xml
    主要要写的maven配置文件
target
    项目由maven自动输出位置

创建第一个Maven项目

  • 确保idea安装了Maven插件
  • 创建Maven工程

SSM项目实战 之 Maven_第1张图片


SSM项目实战 之 Maven_第2张图片

SSM项目实战 之 Maven_第3张图片

  • 添加Maven依赖jar包(会自动把jar依赖到项目当中)

    pom.xml

    
    
      4.0.0
    
      com.itlike
      SSMMavenPro
      1.0
      war
    
      SSMMavenPro Maven Webapp
      
      http://www.example.com
    
    
      
        UTF-8
        1.8
        1.8
    
        
        5.0.7.RELEASE
        3.4.6
    
      
    
      
    
        
        
          junit
          junit
          4.12
          test
        
        
        
          org.projectlombok
          lombok
          1.16.6
        
        
        
          javax.servlet
          servlet-api
          2.5
          provided
        
        
        
          mysql
          mysql-connector-java
          5.1.21
        
        
        
          com.alibaba
          druid
          1.0.14
        
        
        
          commons-lang
          commons-lang
          2.6
        
        
        
          org.springframework
          spring-test
          ${org.springframework.version}
          test
        
        
        
          org.springframework
          spring-core
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-context
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-context-support
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-expression
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-jdbc
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-tx
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-web
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-aop
          ${org.springframework.version}
        
        
        
          org.springframework
          spring-webmvc
          ${org.springframework.version}
        
    
        
        
          org.aspectj
          aspectjrt
          1.7.4
        
        
        
          org.aspectj
          aspectjweaver
          1.7.4
        
    
        
        
          cglib
          cglib
          3.1
        
    
        
        
          org.mybatis
          mybatis
          ${org.mybatis.version}
        
        
        
          org.mybatis
          mybatis-spring
          1.3.0
        
    
        
        
          com.fasterxml.jackson.core
          jackson-core
          2.9.4
        
        
        
          com.fasterxml.jackson.core
          jackson-databind
          2.9.4
        
        
        
          com.fasterxml.jackson.core
          jackson-annotations
          2.9.4
        
    
        
        
          org.slf4j
          slf4j-api
          1.7.6
        
        
        
          org.slf4j
          slf4j-log4j12
          1.7.6
        
        
        
          log4j
          log4j
          1.2.17
        
        
        
          commons-fileupload
          commons-fileupload
          1.3.1
        
        
        
          jstl
          jstl
          1.2
        
        
        
          taglibs
          standard
          1.1.2
        
        
        
          com.github.pagehelper
          pagehelper
          4.1.4
        
      
    
      
        SSMMavenPro
    
        
          
            org.mybatis.generator
            mybatis-generator-maven-plugin
            1.3.2
            
              true
              false
            
            
              
                mysql
                mysql-connector-java
                5.1.21
              
            
          
        
    
        
          
            
              maven-clean-plugin
              3.1.0
            
            
            
              maven-resources-plugin
              3.0.2
            
            
              maven-compiler-plugin
              3.8.0
            
            
              maven-surefire-plugin
              2.22.1
            
            
              maven-war-plugin
              3.2.2
            
            
              maven-install-plugin
              2.5.2
            
            
              maven-deploy-plugin
              2.8.2
            
          
        
      
    

Maven仓库

  • Maven所有的Jar包都是放到maven仓库当中
  • 在项目当中是对仓库jar包的引用

Maven仓库

本地仓库
    本地存放jar的目录
私服
    私人搭建的服务器,一般在企业内部局域网使用
中央仓库
    Maven内置了一个远程仓库的地址,它就是中央仓库

Maven找jar包的过程

  • Maven查找引入jar包时, 会先到本地仓库当中查找,没有找到就会到私服中找,也没有就去到远程中央仓库查找.
  • 找到后会下载到本地仓库,下次就不用到远程仓库查找了
  • 最终都会把jar包下载到本地仓库
  • Maven工程最终引用的都是本地的jar包

设置本地仓库目录地址

默认本地仓库
    C:\Users\LE\.m2\repository
                    
修改本地仓库
    首先,把maven安装目录config中setting.xml复制一份到.m2文件夹(C:\Users\LE\.m2路径)下
                
    其次,打开setting.xml修改本地仓库地址
    D:\java\mavenRepository

阿里云镜像


    alimaven
    central
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/

Jar包的坐标

  • 组织groupId
  • 项目artifactId
  • 版本version

Maven常用命令

validate
    确保当前配置和 POM 的内容是有效的
clean
    删除target目录下及其目录下的所有内容
mvn compile
    将java文件编译成二进制放到target目录当中
test
    运行测试用例
package
    打包工程
install
    把maven打成的包发布到本地仓库当中
后一个命令执行时, 前面命令都会执行

命令

SSM项目实战 之 Maven_第4张图片

Maven作用范围(scope值)

pom.xml文件

    org.springframework
    spring-test
    ${org.springframework.version}
    test


compile
    默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。
    打包的时候通常需要包含进去
test
    依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行。
    不会被打包,例如:junit
runtime
    表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。
    与compile相比,跳过了编译而已。
    例如JDBC驱动,适用运行和测试阶段
provided
    打包的时候可以不用包进去,别的设施会提供。
    事实上该依赖理论上可以参与编译,测试,运行等周期。
    相当于compile,但是打包阶段做了exclude操作
system
    从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

Maven创建Web工程

注意事项

  • generating project in batch mode 很慢,是因为maven获取archetype-catalog.xml导致。
  • 用浏览器打开http://repo1.maven.org/maven2/archetype-catalog.xml很慢。
  • 解决方法: 在用maven创建项目时在properties中添加 archetypeCatalog=internal,让maven读取本地配置即可。

tomcat插件


    
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.2
        
          8081
          /
        
    

你可能感兴趣的:(SSM项目实战 之 Maven)