摘要:首先進入到工程文件下進行這個項目,完成后會打包成并加入到本地倉庫中,下面我們只需要根據本地倉庫中的包去創建我們事先定義好的項目框架,執行命令后會穿件如下的項目結構好了現在可以進入到中去執行運行測試用例。
此篇主要來談談maven自定義archetype,maven是一個很好的代碼構建工具,采用“約定優先于配置”的原則進行項目管理,相信很多的java開發者應該都了解maven并可能在工作當中都是通過maven來管理項目的,此篇就不再深究maven的概念問題,側重點來聊聊如何自定義archetype。
0x01 為什么要自定義archetypemaven也內置了很多的archetype供用戶選擇使用什么樣的骨架去創建一個項目,比如:
maven-archetype-webapp
maven-archetype-quickstart
在創建一個maven項目的時候會列出很多archetype供選擇,maven默認的archetype是maven-archetype-webapp。
但是在一個團隊做開發的過程中,可能僅僅依靠maven預先提供的archetyp可能是不夠的,團隊之間協作有自己的定義方式,每個人的結構定義風格也不盡相同,在這樣的背景下我們有必要去定義一個統一的代碼骨架供團隊使用,這樣做的好處還有在新人加入團隊的初期能夠快速的理解項目。
0x02 創建自定義archetype工程archetype是在maven-archetype-plugin插件執行generate目標的時候進行配置的,本次使用IDEA進行archetype的開發,創建archetype的目錄結構如下:
下面對上述圖片中的描述進行詳細的解釋:
根目錄下boyuarchetype/pom.xml和一般的maven項目一樣主要定義項目的坐標等信息。
所有的項目骨架內容都集中在boyuarchetype/src/main/resources/archetype-resources中,其中的pom.xml定義了待生成項目的pom文件的內容,/src/main/java、/src/test/java中分別定義了待生成項目中相應目錄下的內容。
boyuarchetype/src/main/resources/META-INF/maven/archetype-metadata.xml中定義相關的元數據描述。
0x03 archetype工程文件詳細介紹1.boyuarchetype/pom.xml
4.0.0 com.none.budmwp boyuarchetype jar 1.0 boyuarchetype http://maven.apache.org
pom.xml中的packaging和普通的maven項目打包方式相同為jar,沒有和插件開發的打包方式保持一致。
groupId一般的命名規則為公司名加項目名稱,如:com.segmentfault.budmwp
artifactId是指budmwp這個項目中的模塊名稱。
modelVersion在maven2和maven3中都是4.0.0
2.boyuarchetype/src/main/resources/archetype-resources/pom.xml
4.0.0 ${groupId} ${artifactId} ${version} ${artifactId} http://maven.apache.org junit junit 3.8.1 test org.apache.maven.plugins maven-archetype-plugin 1.8 org.apache.maven.plugins maven-source-plugin UTF-8
上面${}標識的變量都是通過maven中的命令行傳進來的,如:mvn archetype:generate -DgroupId=com.none.budmwp
3.boyuarchetype/src/main/resources/META-INF/maven/archetype-metadata.xml
src/main/java **/*.java src/test/java **/*.java
filtered="true"標識下面提到的${}是否要進行替換
packaged="true"標識boyuarchetype/src/main/resources/archetype-resources/src/main/java中對應的內容是否要放入到package中。
4.boyuarchetype/src/main/resources/archetype-resources/src/main/java/App.java
package ${package}; /** * @author boyu * @version $Id: a, v0.1 16/5/2 下午2:28 boyu Exp $. */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }
${package}會被maven命令行中傳進來的參數進行替換。
0x04 構建archetype工程通過上面將一個簡單的archetype工程已經搭建完成,接下來要去根據這個archetype創建我們定義好的項目骨架。
首先進入到boyuarchetype工程文件下進行make clean install這個項目,完成后會打包成boyuarchetype-1.0.jar并加入到本地倉庫中,下面我們只需要根據本地倉庫中的boyuarchetype-1.0.jar包去創建我們事先定義好的項目框架, mvn archetype:generate -DgroupId=com.none.budmwp -DartifactId=boyuarchetest -Dpackage="com.none.budmwp.boyuarchetest" -DarchetypeGroupId=com.none.budmwp -DarchetypeArtifactId=boyuarchetype -DarchetypeVersion=1.0 -X -DarchetypeCatalog=local
執行命令后會穿件如下的項目結構:
好了現在可以進入到boyuarchetypetest中去執行mvn test 運行測試用例。到這里整個項目就創建完畢了。
0x05 總結初入java,進入到公司參與項目的第一件事就是拉代碼學習代碼,但是沒有接觸過過多的java開發不知道maven、eclipse所謂何物,只有依賴老手們領進門了。maven是一個很好的構建管理工具,目前java重度用戶阿里、支付寶都是通過maven來進行項目構建的,所以還是有必要去了解了解maven的,未來還很遙遠,讓maven來提高你的項目構建效率吧。
0x06 參考資料大家可以去參考許曉斌著的maven實戰一書,里面講maven講的很好,初學者可以快速入門。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65867.html
摘要:這個文件會出現在創建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理如果是多模塊工程,該是總文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊定義在子模塊下,子模塊文件只管理子模塊的依賴。 雖然maven已經提供了maven-archetype-webapp、maven-archetype-quickstart等項目骨架幫助我們快速構建項目架構,但是默認提供的...
摘要:基本配置環境變量環境變量中添加為主目錄在中添加使用阿里云中央倉庫修改根目錄下文件夾中的文件,內容如下創建基于的項目使用命令行創建使用原型插件創建工程。 「博客搬家」 原地址: 簡書 原發表時間: 2017-03-23 Maven 是基于項目對象模型「POM」,可以通過一小段描述信息來管理項目的構建、報告和文檔的軟件項目管理工具。本文總結了 Maven 的基本用法。 1. Maven...
摘要:微服務應用架構腳手架開源項目地址作為一名碼農,經常要為了工作或業余愛好自己搭建項目大公司除外,配環境,找包,很是煩人。可快速創建用于開發環境的基礎應用架構。前提是你得有私服的發布賬號及密碼執行將腳手架發布到私服。 微服務應用架構腳手架 開源項目地址: http://git.oschina.net/chinax... 作為一名碼農,經常要為了工作或業余愛好自己搭建項目(大公司除外),配環...
摘要:準備工作配置安裝下載訪問密碼官方下載地址安裝解壓到盤根目錄下目錄隨便放最好不要有中文配置環境變量測試打開命令窗口鍵入可以輸出版本信息就證明環境變量生效且安裝成功修改的本地倉庫位置及鏡像路徑進入的根目錄點擊打開文件夾編輯文件 準備工作 配置安裝Maven 下載 apache-maven-3.2.3.zip 訪問密碼 1d47 官方下載地址 安裝 解壓apache-m...
摘要:用創建項目組織標識包名項目名稱指定,,創建一個,創建一個是否使用交互模式其中,為項目骨架類型,可選擇的有每一個骨架都會建相應的目錄結構和一些通用文件,最常用的是和骨架。再比如這告訴來從模板創建項目。 用maven創建項目 mvn archetype:generate -DgroupId=cn.codingxiaxw.seckill -DartifactId=seckill -Dpack...
閱讀 658·2021-11-23 09:51
閱讀 3258·2021-10-11 10:58
閱讀 15407·2021-09-29 09:47
閱讀 3529·2021-09-01 11:42
閱讀 1281·2019-08-29 16:43
閱讀 1832·2019-08-29 15:37
閱讀 2089·2019-08-29 12:56
閱讀 1718·2019-08-28 18:21