maven的生命周期有三套,互相独立。每一个生命周期含有不一样阶段,经常使用以下html
maven命令能够调用maven的生命周期阶段完成构建,不一样生命周期无依赖,同一辈子命周期的阶段先后是有依赖的。apache
example: mvn clean install site
插件目标是插件对应的某一种功能,能够和maven生命周期的阶段绑定。服务器
生命周期阶段 | 插件目标 |
---|---|
process-resources | maven-resource-plugin:resources |
compile | maven-compiler-plugin:compile |
process-test-resource | maven-resource-plugin:testResources |
test-compile | maven-compile-plugin:testCompile |
test | maven-surefire-plugin:test |
package | maven-jar-plugin:jar |
install | maven-install-plugin:install |
deploy | maven-deploy-plugin:deploy |
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>attach source</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin>
上面的代码建立了一个自定义的绑定,在verify
阶段绑定了maven-source-plugin:jar-no-fork
插件目标。做用是在verify阶段生成项目源码包,调用命令为maven verify
。maven
命令行配置
使用-D
参数配置,例如post
mvn package -Dmaven.test.skip=true
pom文件配置
使用<plugin>
标签内的<configration>
配置,例如测试
<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
上面的代码配置了compile插件编译1.8版本的源文件spa
maven命令也能够调用maven的插件目标来完成构建。
分析命令插件
mvn dependency:tree
插件的定位也须要三要素:groupid,artifactid,version。在上述命令中dependency
称为插件前缀,tree
称为插件目标。根据插件前缀定位插件坐标。命令行
查找前缀对应的artifactid为maven-dependency-plugin
,由于查获得因此确认groupid为org.apache.maven.plugins
,若是查不到则会去配置的其它仓库重复步骤1,全部配置的仓库均找不到则报错。code
<plugin> <name>Apache Maven Dependency Plugin</name> <prefix>dependency</prefix> <artifactId>maven-dependency-plugin</artifactId> </plugin>
2.10
因此实际执行的命令为
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:tree