發博詞
經測試,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
- 生成的項目的各個Module的artifactId都帶着groupId字首
- Maven插件對package的處理過程,将現有項目的包名去掉groupid,不會比對去掉artificialid
常用變量
- ${groupId}:groupid;
- ${artifactId}:目前子產品的artifactId,每個子產品一個,來自目前子產品的配置資訊,看archetype-metadata小節
- ${rootArtifactId}:根子產品的artifactId
- ${parentArtifactId}:父子產品的 artifactId,子產品劃分多層級的時候會用到
- ${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>