IDEA自定义Maven的archetype

Terwer 技术分享 Java SE评论226字数 2169阅读7分13秒阅读模式

在创建 Maven 的项目时我们发现了一个很不方便的问题,就是每次创建 Maven 的工程的时候,都需要选择一个骨架,但是每个骨架都需要删除一部分东西才行,这样的话实在是太不方便了。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

为什么要自定义 archetype

在创建 Maven 的项目时我们发现了一个很不方便的问题,就是每次创建 Maven 的工程的时候,都需要选择一个骨架,但是每个骨架都需要删除一部分东西才行,在平时开发中,如果是分布式项目,有可能会频繁创建子项目,每次都要删除不要的文件然后拷贝我们要的文件,例如弹簧配置,web.xml 中配置等。这样做不仅会浪费大量时间,拷贝和删除文件也容易导致错误的发生,比如漏拷某文件。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

Archetype maven 项目的组成

一个典型的 Archetype Maven 项目主要包括如下几个部分:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

  • pom.xml:Archetype 自身的 POM。
  • src/main/resources/archetype-resources/pom.xml:基于该 Archetype 生成项目的 POM 原型。
  • src/main/resources/META-INF/maven/archetype-metadata.xml:Archetype 的描述符文件。
  • src/main/resources/archetype-resources/**:其他需要包含在 Archetype 中的内容。

创建自己的骨架结构

要创建 Maven 的模板,首先你要创建一个 Maven 的项目,然后再以这个项目作为模板。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

创建 maven 工程

首先创建一个 Maven 的工程,名字叫 maven-template-java-simple文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

选择骨架文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA自定义Maven的archetype

骨架创建

在 maven-template-java-simple 根目录执行文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

mvn archetype:create-from-project

报错解决文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

mvn archetype:create-from-project报错The specified user settings file does not exist

https://www.cnblogs.com/chmod/p/15489910.html文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

执行完毕之后,会出现一个编译之后新的 maven 工程(target 文件夹),如下图:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA自定义Maven的archetype

骨架安装

安装对应骨架项目文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

先进入骨架项目的 pom 文件目录:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

cd target/generated-sources/archetype

执行安装:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

mvn clean install

我们的骨架项目坐标如下:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

<groupId>com.terwergreen</groupId>
<artifactId>maven-template-java-simple-archetype</artifactId>
<version>1.0.0</version>
<packaging>maven-archetype</packaging>

至此,骨架项目安装成功。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

使用自己创建的自定义骨架

创建新的 Maven 工程,选择自定义骨架文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

添加骨架

创建新的 maven 工程,选择 Add Archetype,填写刚才添加的骨架工程坐标,点击 OK,这是会生成一个新的骨架选项。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

groupId com.terwergreen
artifactId maven-template-java-simple-archetype
version 1.0.0
IDEA自定义Maven的archetype

选中新创建的骨架,点击下一步创建新的 Maven 的项目如下,这是新建的测试项目:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA自定义Maven的archetype
IDEA自定义Maven的archetype
IDEA自定义Maven的archetype
IDEA自定义Maven的archetype

以后再创建类似的 Maven 的项目时,就可以快速新建的 Maven 项目而不用改来改去了。是不是很方便呢?文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

PS:删除自定义 archetype文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

cd /Users/terwer/Library/Caches/JetBrains/IntelliJIdea2021.3/Maven/Indices

然后编辑 UserArchetypes.xml​ 文件即可。注意:修改文件之后需要重启 IDEA。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

手动添加的方法:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

解决添加失效问题(IDEA2022.1 以下版本有效,不包括 IDEA2022.1)

cd ~/Library/Caches/JetBrains

找到对应版本目录,例如文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

cd /Users/terwer/Library/Caches/JetBrains/IntelliJIdea2021.3/Maven/Indices

然后新建一个 UserArchetypes.xml​ 文件,内容如下:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

<archetypes>
    <archetype groupId="com.terwergreen" artifactId="maven-template-java-simple-archetype" version="1.0.3" />
</archetypes>

重启 IDEA 就可以了。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA 2022.1 的变化

IDEA2022 在 Add​ 完成之后,下次新建需要切换 Catalog 到 Default Local​,然后才能在 Archetype​ 中选择到。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA自定义Maven的archetype文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA 2022.3 注意事项

IDEA2022.3 需要自己填写下面的内容:文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

IDEA自定义Maven的archetype文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

最新可用源码

https://github.com/terwer/maven-template-java-simple文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

2022/03/14 验证通过文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

文章更新历史文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

2022/03/03 初稿。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

2022/04/21 兼容 IDEA 2022.1 。提供使用的新方法。文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

2023/02/22 兼容 IDEA 2033.3 。 文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html

文章源自浅海拾贝-https://blog.terwergreen.com/idea-zi-ding-yimaven-archetype-2.html
相关文章
  • 扫码加我微信
  • 验证消息请输入:来自你的博客
  • weinxin
  • 我的微信公众号
  • 微信扫一扫与我交流吧
  • weinxin
Terwer
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: