Maven多Module自定义archetype
source link: https://perkins4j2.github.io/posts/72500/
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.
Maven多Module自定义archetype
创建archetype项目
创建Parent
- 利用IDEA创建骨架项目,名称例如archetype-all
- Pom
<artifactId>archetype-all</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>3.2.0</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.2.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
- 可添加骨架自定义的目录文件等,例如.ignore等
创建多Module
- 名称如archetype-common、archetype-processor、archetype-provider
- 各module创建目录,包括源、资源、测试、数据等
- 各模块添加骨架文件,例config、util、主入口文件等
- clean install,检查包冲突和异常等
- 运行调试,保障项目运行正常
当前项目根目录下,执行mvn archetype:create-from-project
进入target/generated-sources/archetype目录,即为利用当前项目生成骨架结果。
修改骨架名称pom.xml
artifactId和name,默认会加archetype,可调整。
调整多模块骨架名称
进入target/generated-sources/archetype/src/main/resources/archetype-resources/
修改module的目录名称
rootArtifactId-common
rootArtifactId-processor
rootArtifactId-provider
确认.ignore等文件是否包含,没有的话手动添加。
Parent Pom添加多modules
<modules> |
Parent Pom添加多modules依赖
<dependency> |
确认子module Pom的artifactId名称
<artifactId>${artifactId}</artifactId> |
修改子module Pom的依赖module artifactId名称
<artifactId>${rootArtifactId}-common</artifactId> |
修改archetype-metadata.xml配置,位于arget/generated-sources/archetype/src/main/resources/META-INF/,替换样例:
<module id="${rootArtifactId}-module1" dir="__rootArtifactId__-module1" name="${rootArtifactId}-module1"> |
安装和测试骨架
骨架目录target/generated-sources/archetype/
执行mvn install
安装到本地
测试,执行mvn archetype:generate -DarchetypeCatalog=local
,选择骨架和生产项目信息
部署:
mvn deploy
命令行测试:
mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -Dfilter=archetype-all -DarchetypeCatalog=http://xx.xxx.com/nexus/content/repositories/releases/ |
自定义包名称
pom.xml头部添加:
#set ($artifactId = "${artifactId}") |
取artifactId得后半部分赋值给appName变量, archetype-metadata.xml中添加:
<requiredProperty key="appName"> |
修改目录名为:
src/main/resources/xx/appName/
移除本地 自定义 archetype
~/.IntelliJIdea2016.2/system/Maven/Indices/UserArchetypes.xml
本文标题:Maven多Module自定义archetype
文章作者:Perkins
发布时间:2020年10月09日
原始链接:https://perkins4j2.github.io/posts/72500/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK