創建您自己的Maven模板


相關鏈接:

一、事實上Maven的模板也是一個maven項目,所以我們首先要生成一個生成模板的模板項目

1.   隨便找一個現成的maven項目
     假設沒有運行:mvn archetype:create -DartifactId=archetype-template-generator  -DgroupId=test生成一個
2.   進入1.中的maven項目
     運行:mvn archetype:create-from-project
     好了,target/generated-sources/archetype就是我們要的項目了,把這個目錄總體拷貝出來(當然不拷貝也能夠。個人還是習慣獨立出來)
     那么這個project是怎么創建模板的呢。接着看
3.   首先我們改動下這個project的信息。便於我們安裝之后使用
     打開archetype/pom.xml
     <groupId>test</groupId>
     <artifactId>archetype-template-generator-archetype</artifactId>
     <version>1.0-SNAPSHOT</version>
     改動這三項
     然后運行:mvn -Dmaven.test.skip=true clean install
     (當然,高級定制功能我們以下再說。先走一遍最簡單的流程)
     假設沒有錯誤,那么如今我們的模板已經安裝到本機maven倉庫了。接着我們來試着使用這個模板創建一個maven項目
4.   運行:mvn archetype:generate -DarchetypeCatalog=local
     不出意外,我們能夠看到3.中安裝的模板(假設看不到,請運行:mvn archetype:update-local-catalog進行更新,本地archetype存放在:${user.home}/.m2/archetype-catalog.xml中),選擇1
     提示輸入目標項目的信息。這里我們依據實際情況輸入參數。然后確認Y。這么就依據我們自己的模板創建了一個maven項目。這里的archetypeproject我們能夠復用

參考鏈接

二、這一部分我們來定制剛才生成的archetype項目,滿足我們生成自己定義結果的項目的需求

1.   定制哪些文件會被作為模板
     僅僅要我們把文件放到src\main\resources\archetype-resources文件夾以下,而且在src\main\resources\META-INF\maven\archetype-metadata.xml中進行配置
     比方:我們加入src\main\resources\archetype-resources\.gitignore,然后在archetype-metadata.xml中加入以下內容:
     <fileSets>
          <fileSet encoding="UTF-8" filtered="true">
               <directory></directory>
               <includes>
                    <include>.gitignore</include>
               </includes>
          </fileSet>
     </fileSets>
     又一次mvn -Dmaven.test.skip=true clean install 再次生成項目,就會在新項目中增加.gitignore文件
     其它類似配置,我就不具體解釋了
2.   屬性替換
     能夠在上面的.gitignore增加${pro-to-replace}內容
     而且在archetype-metadata.xml中加入內容:
     <requiredProperties>
          <requiredProperty key="pro-to-replace"/>
     </requiredProperties>
     我們想這個占位符在實際使用的時候進行替換。這時archetype-metadata.xml中filtered="true"必須配置
     這樣假設在生成的向導里會提示我們輸入pro-to-replace,當然我們也能夠在生成的命令行中用-Dpro-to-replace=XXX進行這是,假設設置了,不會提示我們輸入指
     我們也能夠像這樣設置默認值:
     <requiredProperty key="pro-to-replace">
               <defaultValue>pro-to-replace</defaultValue>
     </requiredProperty>
     當然假設這樣。就不會提示你輸入屬性值,假設不想使用屬性值。僅僅有通過-Dpro-to-replace=XXX進行更改

     
     這么一來,又一次安裝,然運行創建的時候設置屬性:mvn archetype:generate -DarchetypeCatalog=local -Dpro-to-replace=pro_value
     生成project的.gitignore中的${pro-to-replace}就會被替換為pro_value

     注意:這里的屬性名稱不能包括.
          比方:pro.to.replace是不行的




     

     

版權聲明:本文博客原創文章。博客,未經同意,不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM