摘要:首先進(jìn)入到工程文件下進(jìn)行這個項目,完成后會打包成并加入到本地倉庫中,下面我們只需要根據(jù)本地倉庫中的包去創(chuàng)建我們事先定義好的項目框架,執(zhí)行命令后會穿件如下的項目結(jié)構(gòu)好了現(xiàn)在可以進(jìn)入到中去執(zhí)行運行測試用例。
此篇主要來談?wù)刴aven自定義archetype,maven是一個很好的代碼構(gòu)建工具,采用“約定優(yōu)先于配置”的原則進(jìn)行項目管理,相信很多的java開發(fā)者應(yīng)該都了解maven并可能在工作當(dāng)中都是通過maven來管理項目的,此篇就不再深究maven的概念問題,側(cè)重點來聊聊如何自定義archetype。
0x01 為什么要自定義archetypemaven也內(nèi)置了很多的archetype供用戶選擇使用什么樣的骨架去創(chuàng)建一個項目,比如:
maven-archetype-webapp
maven-archetype-quickstart
在創(chuàng)建一個maven項目的時候會列出很多archetype供選擇,maven默認(rèn)的archetype是maven-archetype-webapp。
但是在一個團隊做開發(fā)的過程中,可能僅僅依靠maven預(yù)先提供的archetyp可能是不夠的,團隊之間協(xié)作有自己的定義方式,每個人的結(jié)構(gòu)定義風(fēng)格也不盡相同,在這樣的背景下我們有必要去定義一個統(tǒng)一的代碼骨架供團隊使用,這樣做的好處還有在新人加入團隊的初期能夠快速的理解項目。
0x02 創(chuàng)建自定義archetype工程archetype是在maven-archetype-plugin插件執(zhí)行g(shù)enerate目標(biāo)的時候進(jìn)行配置的,本次使用IDEA進(jìn)行archetype的開發(fā),創(chuàng)建archetype的目錄結(jié)構(gòu)如下:
下面對上述圖片中的描述進(jìn)行詳細(xì)的解釋:
根目錄下boyuarchetype/pom.xml和一般的maven項目一樣主要定義項目的坐標(biāo)等信息。
所有的項目骨架內(nèi)容都集中在boyuarchetype/src/main/resources/archetype-resources中,其中的pom.xml定義了待生成項目的pom文件的內(nèi)容,/src/main/java、/src/test/java中分別定義了待生成項目中相應(yīng)目錄下的內(nèi)容。
boyuarchetype/src/main/resources/META-INF/maven/archetype-metadata.xml中定義相關(guān)的元數(shù)據(jù)描述。
0x03 archetype工程文件詳細(xì)介紹1.boyuarchetype/pom.xml
4.0.0 com.none.budmwp boyuarchetype jar 1.0 boyuarchetype http://maven.apache.org
pom.xml中的packaging和普通的maven項目打包方式相同為jar,沒有和插件開發(fā)的打包方式保持一致。
groupId一般的命名規(guī)則為公司名加項目名稱,如: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
上面${}標(biāo)識的變量都是通過maven中的命令行傳進(jìn)來的,如: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"標(biāo)識下面提到的${}是否要進(jìn)行替換
packaged="true"標(biāo)識boyuarchetype/src/main/resources/archetype-resources/src/main/java中對應(yīng)的內(nèi)容是否要放入到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命令行中傳進(jìn)來的參數(shù)進(jìn)行替換。
0x04 構(gòu)建archetype工程通過上面將一個簡單的archetype工程已經(jīng)搭建完成,接下來要去根據(jù)這個archetype創(chuàng)建我們定義好的項目骨架。
首先進(jìn)入到boyuarchetype工程文件下進(jìn)行make clean install這個項目,完成后會打包成boyuarchetype-1.0.jar并加入到本地倉庫中,下面我們只需要根據(jù)本地倉庫中的boyuarchetype-1.0.jar包去創(chuàng)建我們事先定義好的項目框架, 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
執(zhí)行命令后會穿件如下的項目結(jié)構(gòu):
好了現(xiàn)在可以進(jìn)入到boyuarchetypetest中去執(zhí)行mvn test 運行測試用例。到這里整個項目就創(chuàng)建完畢了。
0x05 總結(jié)初入java,進(jìn)入到公司參與項目的第一件事就是拉代碼學(xué)習(xí)代碼,但是沒有接觸過過多的java開發(fā)不知道m(xù)aven、eclipse所謂何物,只有依賴?yán)鲜謧冾I(lǐng)進(jìn)門了。maven是一個很好的構(gòu)建管理工具,目前java重度用戶阿里、支付寶都是通過maven來進(jìn)行項目構(gòu)建的,所以還是有必要去了解了解maven的,未來還很遙遠(yuǎn),讓maven來提高你的項目構(gòu)建效率吧。
0x06 參考資料大家可以去參考許曉斌著的maven實戰(zhàn)一書,里面講maven講的很好,初學(xué)者可以快速入門。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65867.html
摘要:這個文件會出現(xiàn)在創(chuàng)建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理如果是多模塊工程,該是總文件,該文件中會定義項目的子模塊以及對子模塊的依賴進(jìn)行管理等,子模塊定義在子模塊下,子模塊文件只管理子模塊的依賴。 雖然maven已經(jīng)提供了maven-archetype-webapp、maven-archetype-quickstart等項目骨架幫助我們快速構(gòu)建項目架構(gòu),但是默認(rèn)提供的...
摘要:基本配置環(huán)境變量環(huán)境變量中添加為主目錄在中添加使用阿里云中央倉庫修改根目錄下文件夾中的文件,內(nèi)容如下創(chuàng)建基于的項目使用命令行創(chuàng)建使用原型插件創(chuàng)建工程。 「博客搬家」 原地址: 簡書 原發(fā)表時間: 2017-03-23 Maven 是基于項目對象模型「POM」,可以通過一小段描述信息來管理項目的構(gòu)建、報告和文檔的軟件項目管理工具。本文總結(jié)了 Maven 的基本用法。 1. Maven...
摘要:微服務(wù)應(yīng)用架構(gòu)腳手架開源項目地址作為一名碼農(nóng),經(jīng)常要為了工作或業(yè)余愛好自己搭建項目大公司除外,配環(huán)境,找包,很是煩人。可快速創(chuàng)建用于開發(fā)環(huán)境的基礎(chǔ)應(yīng)用架構(gòu)。前提是你得有私服的發(fā)布賬號及密碼執(zhí)行將腳手架發(fā)布到私服。 微服務(wù)應(yīng)用架構(gòu)腳手架 開源項目地址: http://git.oschina.net/chinax... 作為一名碼農(nóng),經(jīng)常要為了工作或業(yè)余愛好自己搭建項目(大公司除外),配環(huán)...
摘要:準(zhǔn)備工作配置安裝下載訪問密碼官方下載地址安裝解壓到盤根目錄下目錄隨便放最好不要有中文配置環(huán)境變量測試打開命令窗口鍵入可以輸出版本信息就證明環(huán)境變量生效且安裝成功修改的本地倉庫位置及鏡像路徑進(jìn)入的根目錄點擊打開文件夾編輯文件 準(zhǔn)備工作 配置安裝Maven 下載 apache-maven-3.2.3.zip 訪問密碼 1d47 官方下載地址 安裝 解壓apache-m...
摘要:用創(chuàng)建項目組織標(biāo)識包名項目名稱指定,,創(chuàng)建一個,創(chuàng)建一個是否使用交互模式其中,為項目骨架類型,可選擇的有每一個骨架都會建相應(yīng)的目錄結(jié)構(gòu)和一些通用文件,最常用的是和骨架。再比如這告訴來從模板創(chuàng)建項目。 用maven創(chuàng)建項目 mvn archetype:generate -DgroupId=cn.codingxiaxw.seckill -DartifactId=seckill -Dpack...
閱讀 667·2021-11-23 09:51
閱讀 3314·2021-10-11 10:58
閱讀 15488·2021-09-29 09:47
閱讀 3581·2021-09-01 11:42
閱讀 1297·2019-08-29 16:43
閱讀 1841·2019-08-29 15:37
閱讀 2121·2019-08-29 12:56
閱讀 1732·2019-08-28 18:21