国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

Maven默認周期與插件

2019-11-14 22:26:55
字體:
供稿:網(wǎng)友
Maven默認周期與插件

運行 cmd

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
image 
這個archetype(模板)是一個插件,generate是目標指令(goal)
插件就是集成了若干個goal的合集
Maven標準的項目結(jié)構(gòu):

src/main/java

源代碼

src/main/resources

資源文件

src/main/filters

資源過濾

src/main/config

配置文件

src/main/scripts

腳本

src/main/webapp

Web程序源代碼

src/test/java

測試的源代碼

src/test/resources

測試的資源

src/test/filters

測試的資源過濾

src/it

集成測試(主要用于插件)

src/assembly

Assembly descriptors

src/site

自動生成的網(wǎng)站

生成后在根目錄會有個pom.xml,然后是src和target文件夾:
<PRoject xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.mycompany.app</groupId> 包名  <artifactId>my-app</artifactId> 項目名,也用于生成的jar包名  <packaging>jar</packaging> 默認為jar,后面詳述  <version>1.0-SNAPSHOT</version> 版本  <name>my-app</name> 用于文檔  <url>http://maven.apache.org</url> 用于文檔  <dependencies>    <dependency> 一個外部依賴      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>  </dependencies></project>

構(gòu)建:

mvn package
image 
這個package是自帶命令,是default構(gòu)建周期的一個步驟
比如運行compile,會自動按以下順序執(zhí)行:
  1. validate
  2. generate-sources
  3. process-sources
  4. generate-resources
  5. process-resources
  6. compile
可以測試一下:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
image 
關(guān)于構(gòu)建周期:有三個是內(nèi)置的,default(默認), clean(清理target文件夾) , site(生成站點文檔)
每個周期都是由不同步驟組成,比如default就包括了:
  • validate - 校驗
  • compile -編譯
  • test - 單元測試
  • package - 打包成jar或war等
  • integration-test - 集成測試
  • verify - 校驗
  • install -部署到本地代碼庫,供其他項目本地調(diào)用
  • deploy - 部署到遠程代碼庫,供他人或項目遠程調(diào)用

下面的步驟總是會從頂部開始,按順序執(zhí)行

同一個命令可以同時執(zhí)行多個步驟,如

mvn clean install 會先clean,再install
一個插件的goal代表一個特定的任務(wù),
而某個步驟實際上是調(diào)用某個插件的goal,具體哪個goal跟項目本身有關(guān)
所以,也可以在命令行直接執(zhí)行插件goal,如:
mvn dependency:copy-dependencies
mvn archetype:generate
一個周期步驟可以關(guān)聯(lián)多個插件goal

1.默認關(guān)聯(lián):通過指明pom.xml的packaging,默認為jar

步驟

插件goal

process-resources

resources:resources

compile

compiler:compile(插件可以有多個goal)

process-test-resources

resources:testResources

test-compile

compiler:testCompile(插件可以有多個goal)

test

surefire:test

package

jar:jar

install

install:install

deploy

deploy:deploy

2.手動關(guān)聯(lián):通過pom.xml的plugins

插件的goal本身都有個默認關(guān)聯(lián)的步驟,但goal也可能關(guān)聯(lián)到多個步驟,可以具體指定一個

<build>  <plugins> <plugin>   <groupId>com.mycompany.example</groupId>   <artifactId>display-maven-plugin</artifactId>   <version>1.0</version>   <executions>插件配置     <execution>       <phase>process-test-resources</phase>具體步驟       <goals>         <goal>time</goal>具體goal       </goals>     </execution>   </executions> </plugin>  
  </plugins></build>

這個goal將附加到那個步驟的goal的后面執(zhí)行,也可以自己指定順序

更詳細的三個周期步驟,及相關(guān)goal對應表:

Clean Lifecycle

pre-clean

clean

構(gòu)建的所有東西都被移除

clean:clean

post-clean

Default Lifecycle

validate

initialize

初始化,比如設(shè)環(huán)境變量,建文件夾

generate-sources

process-sources

generate-resources

process-resources

resources:resources

compile

編譯

compiler:compile

process-classes

編譯后處理

plugin:descriptor

generate-test-sources

process-test-sources

resources:testResources

generate-test-resources

process-test-resources

test-compile

測試的編譯

compiler:testCompile

process-test-classes

test

surefire:test

prepare-package

package

jar:jar and plugin:addPluginArtifactMetadata

pre-integration-test

integration-test

post-integration-test

verify

install

install:install

deploy

deploy:deploy

Site Lifecycle

pre-site

site

生成網(wǎng)站文檔

site:site

post-site

site-deploy

site:deploy

具體可以查看maven-core-3.2.5.jar/META-INF/plexus中的三個xml


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 女性| 无为县| 政和县| 延安市| 怀柔区| 达州市| 东乡族自治县| 辽源市| 陆丰市| 鱼台县| 普陀区| 盖州市| 南澳县| 北宁市| 东兰县| 永和县| 吉首市| 祁阳县| 张家界市| 阿城市| 资溪县| 孝感市| 旌德县| 师宗县| 金阳县| 郓城县| 丰镇市| 昌邑市| 吉隆县| 镇远县| 阳谷县| 襄樊市| 巴塘县| 牟定县| 嘉黎县| 连城县| 英山县| 田东县| 璧山县| 城口县| 嘉祥县|