使用 maven 創建項目模板


前言

微服務的概念越來越流行,隨着服務粒度越來越細,拆分的模塊越來越明確,我們的工程項目也變得越來越多。

有時候一個項目搭建,需要集成數據庫、Spring 框架、消息框架、分布式任務框架、緩存等等,如果每次都新建空項目,重新配置,有點太麻煩,所以可以使用項目模板功能

maven archetype:create-from-project,制作符合需求的腳手架工程


配置 demo 工程

一般制作的話,使用公司內常用的中間件依賴,制作一份統一的模板,后續新建項目就能更加快速和模塊分級合理化。

這里記錄的是常規項目模板制作:

打開 IDEA,新建一個工程(同樣可以使用 IDEA 工具中自帶的模板)

新建模塊 module,制定合適的模塊層級

├── test-controller
│   ├── pom.xml 
│   └── src 
├── test-core 
│   ├── pom.xml 
│   └── src 
├── test-dao 
│   ├── pom.xml 
│   └── src 
├── test-deploy 
│   ├── pom.xml 
│   └── src 
....// 其它擴展模塊 
├── README.md 
├── .gitignore 
└── pom.xml

例如上面那樣結構,在 src 目錄下方 java、resource、webapp 等文件


生成模板

mvn archetype:create-from-project

在項目目錄下,輸入該指令,等待執行完

可以在本地模式下測試模板是否符合預期,進入 target 目錄下的 archetype 目錄

cd ${Your Project File Directory}/target/generated-sources/archetype

例如上圖,確認項目結構無誤后,將模板安裝到本地

mvn install

接着就能在 .m2/repository 目錄下看到 archetype-catalog.xml,在里面多了剛才生成的模板

<archetype>
  <groupId>org.example</groupId>
  <artifactId>test-archetype</artifactId>
  <version>1.0-SNAPSHOT</version>
  <description>test-archetype</description>
</archetype>

生成項目

mvn archetype:generate \
    -DarchetypeGroupId=org.example \
    -DarchetypeArtifactId=test-archetype \
    -DarchetypeVersion=1.0-SNAPSHOT \
    -DinteractiveMode=false \
    -DarchetypeCatalog=local \
    -Dversion=1.0.0-SNAPSHOT \
    -DgroupId=cn.sevenyuan \
    -DartifactId=sevenyuan

-D 后面的參數是要重點說明一下的:

  • archetypeGroupId:模板組織 ID
  • archetypeArtifactId:模板 artifact ID
  • archetypeVersion:模板版本號
  • interactiveMode:是否啟用交互模式
  • archetypeCatalog:模板目錄位置,分為 remote 和 local
  • version:自己應用的版本號
  • groupId:自己應用的組織 ID
  • artifactId:自己應用的 artifact ID

例如我使用了 cn.sevenyuan 這個組織名,生成的目錄結構如下


上傳模板到倉庫

需要在 target/generated-sources/archetype 目錄下的 pom 文件中加入倉庫地址,例如如下示范

<!--運行 mvn deploy 時上傳構件到本地倉庫 -->
  <distributionManagement>
    <repository>
      <id>xxx-releases</id>
      <name>Nexus Release Repository</name>
      <url>http://xxx.com/nexus/content/repositories/xxx-release/</url>
    </repository>
    <snapshotRepository>
      <id>xxx-snapshots</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://xxx.com/nexus/content/repositories/xxx-test/</url>
    </snapshotRepository>
  </distributionManagement>

接着在 archetype 目錄下,執行 deploy 命令

mvn deploy

只要別人在 .m2 配置了該倉庫地址,就可以一起使用這個項目模板


參看鏈接

1、Maven自定義archetype生成項目骨架


免責聲明!

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



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