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