maven 命令解析

maven生命周期

maven 的生命周期包括三个阶段:clean、deploy、site。三个阶段互相之间独立,但是每个阶段的内部是有先后顺序的。如下图所示:

maven 命令解析_第1张图片

maven命令的实质

执行maven命令就是执行maven生命周期的各个阶段,并不是maven本生执行命令,而是maven的插件执行命令。

maven的生命周期与插件是互相绑定的,绑定的格式一般为 插件:生命周期,例如:maven-clean-plugin:clean、maven-compiler-plugin:compiler、maven-site-plugin:deploy,用maven命令执行maven各阶段的生命周期

maven命令:mvn clean 则调用maven-clean-plugin:clean

                     mvn  compiler  则调用maven-compiler-plugin:compiler

                     mvn  deploy 则调用 maven-site-plugin:deploy

maven 命令的自定义绑定

实际常见的例子,创建项目源码的jar包时,固有的插件没有绑定这一层关系,需要我们手动绑定。具体如下:

          
                 org.apache.maven.plugins
                 maven-source-plugin
                 2.1.1
                 
                     
                         sources
                         verify
                         
                            jar-no-fork
                         
                     
                 
            

jar-no-fork是maven-source-plugin的创建原项目jar包的文件,指定到defalt的verify阶段,执行命令maven clean install则生效。

maven 常用命令

 mvn clean compile  编译

 mvn clean test 测试

 mvn clean package 打包

 mvn clean install 把生成的jar/war包复制到本地repository(就是~/.m2/repository下面)

 mvn clean deploy 把生成的jar/war包发送到远程repository(建议配置了私服,那就是往私服发送了)

mvn cargo:run 通过cargo插件,把生成的war包部署到本地服务器,并启动。(注意要先运行 mvn clean package 打包)

mvn cargo:redeploy 通过cargo插件,把生成的war包部署到远程服务器:如果已经有了,就先undeploy再deploy,如果没有直接deploy(注意要先运行 mvn clean package 打包,并且远程服务器是启动的)

maven多模块项目打包命令

项目parent 下有child-one、child-twol两个项目模块,其中child-two依赖child-one,parent 管理child-one、child-two

   
        child-one
        child-two
    
参数 说明
-pl 选项后可跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔)
-am 表示同时处理选定模块所依赖的模块
-amd 表示同时处理依赖选定模块的模块
-N 表示不递归子模块
-rf 表示从指定模块开始继续处理

例一:
当执行mvn clean install后会得到如下几个模块:parent、child-one、child-two

例二:
-pl 构建制定模块
当执行mvn clean install -pl  child-two后会得到如下几个模块:parent、child-one、child-two。

例三:
-am 选项可以同时构建所列模块的依赖模块。
当执行mvn clean install -pl child-one -am 后会得到如下几个模块:parent、child-one

例四:
-amd 选项可以同时构建依赖于所列模块的模块。
mvn clean install -pl child-one-amd 后会得到如下模块:child-one、child-two
例五:
-rf 选项可以在完整的反应堆构建顺序基础上,指定从哪个模块开始构建。
mvn clean install -rf child-one,由于parent位于第一,它之后有child-one、child-two,因此会得到如下输出模块:child-one、child-two

例六:
在-pl -am或者-pl -amd的基础上,还能应用-rf参数,以对裁剪后的反应堆再次裁剪。
mvn clean install -pl child-two -amd -rf child-one
其中,-pl 和 -amd参数会得到:parent、child-one、child-two模块,在此基础上 -rf参数制定从child-one开始构建,于是会得到:child-one、child-two

例七:

mvn clean install -N  得到:parent

maven 跳过测试包的命令

mvn test -Dmaven.test.skip=true   在使用mvn package进行编译、打包时,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下

mvn test -DskipTests  在使用mvn package进行编译、打包时,不执行测试用例,也不编译测试用例类

你可能感兴趣的:(maven)