Maven 自定義archeType

微笑面對生活發表於2018-12-11

1. 什麼是archeType

我們在建立maven專案的時候,你會發現有這麼多的apache提供的模板。

Maven 自定義archeType
或者使用mvn archetype:generate命令來快速建立maven專案,也會有很多個選項,讓你選擇模板序號。那每個模板之間有什麼區別呢?

每個模板裡其實就是附帶不同的依賴和外掛。一般在公司私服裡都會有屬於本公司的一套archeType模板,裡面有著除錯好的專案用到的依賴包和版本號。

2. 建立archetype

假如自己已經有了一個maven專案,想給該專案建立一個archeType模板。

cd 到專案根目錄下執行(pom.xml同級目錄)。

mvn archetype:create-from-project 
複製程式碼

此時會在專案target下生成這些檔案:

Maven 自定義archeType

3. 生成archetype模板

cd target/generated-sources/archetype/

然後執行 mvn install 
複製程式碼

執行成功後,執行crawl命令,在本地倉庫的根目錄生成archetype-catalog.xml骨架配置檔案:

mvn archetype:crawl
複製程式碼

Maven 自定義archeType

來看一看它裡面的內容:

[fantj@lalala repository]$ cat archetype-catalog.xml 
<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <archetypes>
    <archetype>
      <groupId>com.fantj</groupId>
      <artifactId>my-self-defind-archtype-archetype</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <description>my-self-defind-archtype</description>
    </archetype>
  </archetypes>
</archetype-catalog>
複製程式碼

4. 使用archetype模板

執行mvn archetype:generate -DarchetypeCatalog=local從本地archeType模板中建立專案。

 mvn archetype:generate -DarchetypeCatalog=local
複製程式碼

然後會讓你選擇模板序號和groupId``artifactId``versionpackage資訊:

Choose archetype:
1: local -> com.fantj:my-self-defind-archtype-archetype (my-self-defind-archtype)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1
Define value for property 'groupId': com.fantj
Define value for property 'artifactId': my-self-defind-archetype-test
Define value for property 'version' 1.0-SNAPSHOT: : 
Define value for property 'package' com.fantj: : 
Confirm properties configuration:
groupId: com.fantj
artifactId: my-self-defind-archetype-test
version: 1.0-SNAPSHOT
package: com.fantj
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: my-self-defind-archtype-archetype:0.0.1-SNAPSHOT
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.fantj
[INFO] Parameter: artifactId, Value: my-self-defind-archetype-test
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.fantj
[INFO] Parameter: packageInPathFormat, Value: com/fantj
[INFO] Parameter: package, Value: com.fantj
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.fantj
[INFO] Parameter: artifactId, Value: my-self-defind-archetype-test
[INFO] Project created from Archetype in dir: /home/fantj/IdeaProjects/maven-tutorial/my-self-defind-archetype-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
複製程式碼

專案建立成功!

當然,也可以使用IDEA來幫我們用圖形介面使用archeType模板建立專案:

圖1
圖2
圖3

後面的就與建立普通專案相同了,不做演示。



如果你喜歡我的文章,那麻煩請關注我的公眾號,公眾號重點分析架構師技術,該公眾號還處於初始階段,謝謝大家的支援。

Maven 自定義archeType
關注公眾號,回覆java架構獲取架構視訊資源(後期還會分享不同的優質資源噢)。



相關文章