7

使用 mvn archetype 创建模板工程

 3 years ago
source link: https://www.sevenyuan.cn/2020/07/15/java/2020-07-15-maven-archetypr/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用 mvn archetype 创建模板工程

2020-07-15

| Java

| 游览 18次

LavaShip_ZH-CN3924445486_1920x1080.jpg

避免重复工作,记录制作 maven 模板


微服务的概念越来越流行,随着服务粒度越来越细,拆分的模块越来越明确,我们的工程项目也变得越来越多。

有时候一个项目搭建,需要集成数据库、Spring 框架、消息框架、分布式任务框架、缓存等等,如果每次都新建空项目,重新配置,有点太麻烦,所以可以使用项目模板功能

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


配置 demo 工程

一般制作的话,使用公司内常用的中间件依赖,制作一份统一的模板,后续新建项目就能更加快速和模块分级合理化。

这里记录的是常规项目模板制作:

打开 IDEA,新建一个工程(同样可以使用 IDEA 工具中自带的模板)

archetype_create_from_idea.png

新建模块 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
target_directory_archetype.png

例如上图,确认项目结构无误后,将模板安装到本地

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 这个组织名,生成的目录结构如下

maven_archetype_complete_demo.png

上传模板到仓库

需要在 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生成项目骨架


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK