天天看點

Maven Archetype Plugin

發博詞

經測試,Maven Archetype Plugin這個插件非常好使;用這個插件去處理一個符合Maven最佳實踐的項目,會得到一個非常好的結果;

User Guide

mvn archetype:create-from-project

在項目根子產品下面執行mvn archetype:create-from-project指令,會生成一個maven archetype項目。再此項目下執行maven install,會将此archetype安裝到本地maven倉庫;

mvn archetype:generate -DarchetypeCatalog=local

使用此指令按照提示操作,可以使用剛剛安裝到本地的maven倉庫的archetype建立一個項目;

Notice

  1. 生成的項目的各個Module的artifactId都帶着groupId字首
  2. Maven插件對package的處理過程,将現有項目的包名去掉groupid,不會比對去掉artificialid

常用變量

  1. ${groupId}:groupid;
  2. ${artifactId}:目前子產品的artifactId,每個子產品一個,來自目前子產品的配置資訊,看archetype-metadata小節
  3. ${rootArtifactId}:根子產品的artifactId
  4. ${parentArtifactId}:父子產品的 artifactId,子產品劃分多層級的時候會用到
  5. ${version}

archetype-metadata

<module id="${rootArtifactId}-application-business" dir="business" name="${rootArtifactId}-application-business">
   <fileSets>
     <fileSet filtered="true" packaged="true" encoding="UTF-8">
       <directory>src/main/java</directory>
       <includes>
         <include>**/*.java</include>
       </includes>
     </fileSet>
   </fileSets>
 </module>      

打包空目錄

<fileSet filtered="true" packaged="true" encoding="UTF-8">
   <directory>src/main/java</directory>
   <includes>
     <include>**/*.java</include>
   </includes>
 </fileSet>
 <fileSet encoding="UTF-8">
   <directory>src/main/resources</directory>
   <includes>
     <include>**/*.yml</include>
     <include>**/*.json</include>
   </includes>
 </fileSet>
 <fileSet filtered="true" packaged="true" encoding="UTF-8">
   <directory>src/test/java</directory>
   <includes>
     <include>**/*.java</include>
   </includes>
 </fileSet>
 <fileSet encoding="UTF-8">
   <directory>src/test/resources</directory>
   <includes>
     <include>**/*.yml</include>
     <include>**/*.json</include>
   </includes>
 </fileSet>