您好,登錄后才能下訂單哦!
這篇文章主要講解了“Maven的生命周期和插件是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Maven的生命周期和插件是什么”吧!
一個完整的項目構建過程通常包括清理、編譯、測試、打包、集成測試、驗證、部署等步驟,Maven從中抽取了一套完善的、易擴展的生命周期。Maven的生命周期是抽象的,其中的具體任務都交由插件來完成。Maven為大多數構建任務編寫并綁定了默認的插件,如針對編譯的插件:maven-compiler-plugin。用戶也可自行配置或編寫插件。
1 . 三套生命周期
Maven定義了三套生命周期:clean、default、site,每個生命周期都包含了一些階段(phase)。三套生命周期相互獨立,但各個生命周期中的phase卻是有順序的,且后面的phase依賴于前面的phase。執行某個phase時,其前面的phase會依順序執行,但不會觸發另外兩套生命周期中的任何phase。
1 . 1 clean生命周期
pre-clean :執行清理前的工作;
clean :清理上一次構建生成的所有文件;
post-clean :執行清理后的工作
1 . 2 default生命周期
default生命周期是最核心的,它包含了構建項目時真正需要執行的所有步驟。
validate
initialize
generate-sources
process-sources
generate-resources
process-resources :復制和處理資源文件到target目錄,準備打包;
compile :編譯項目的源代碼;
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile :編譯測試源代碼;
process-test-classes
test :運行測試代碼;
prepare-package
package :打包成jar或者war或者其他格式的分發包;
pre-integration-test
integration-test
post-integration-test
verify
install :將打好的包安裝到本地倉庫,供其他項目使用;
deploy :將打好的包安裝到遠程倉庫,供其他項目使用;
1 . 3 site生命周期
pre-site
site :生成項目的站點文檔;
post-site
site-deploy :發布生成的站點文檔
2 . Maven的插件
Maven的核心文件很小,主要的任務都是由插件來完成。定位到:%本地倉庫%\org\apache\maven\plugins,可以看到一些下載好的插件:
Maven官網上有更詳細的官方插件列表:
每個插件都有哪些個目標,官方文檔有更詳細的說明:Maven Plugins
3 . 1 內置的綁定
Maven對一些生命周期的階段(phase)默認綁定了插件目標,因為不同的項目有jar、war、pom等不同的打包方式,因此對應的有不同的綁定關系,其中針對default生命周期的jar包打包方式的綁定關系如下:
第二列中,冒號后面即是綁定的插件目標,冒號前面是插件的前綴(prefix),是配置和使用插件的一種簡化方式。Plugin Prefix
3 . 2 自定義綁定
用戶可以根據需要將任何插件目標綁定到任何生命周期的階段,如:將maven-source-plugin的jar-no-fork目標綁定到default生命周期的package階段,這樣,以后在執行mvn package命令打包項目時,在package階段之后會執行源代碼打包,生成如:ehcache-core-2.5.0-sources.jar形式的源碼包。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <id>attach-source</id> <phase>package</phase><!-- 要綁定到的生命周期的階段 --> <goals> <goal>jar-no-fork</goal><!-- 要綁定的插件的目標 --> </goals> </execution> </executions> </plugin> </plugins> …… </build>
4 . 配置插件
Maven插件高度易擴展,可以方便的進行自定義配置。如:配置maven-compiler-plugin插件編譯源代碼的JDK版本為1.7:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>
也可以對插件的各個目標進行更具體的配置。Configuring Plug-ins
5 . 插件倉庫
跟其他構件一樣,插件也是根據坐標存儲在Maven倉庫中。超級POM中Maven配置的默認插件遠程倉庫如下:
<pluginRepositories> <pluginRepository> <id>central</id> <name>Central Repository</name> <url>http://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> <releases> <updatePolicy>never</updatePolicy> </releases> </pluginRepository> </pluginRepositories>
感謝各位的閱讀,以上就是“Maven的生命周期和插件是什么”的內容了,經過本文的學習后,相信大家對Maven的生命周期和插件是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。