maven-archetype多模块骨架创建以及使用

本文详细介绍了如何创建一个maven多模块骨架工程,包括从建立无错误的多模块项目开始,到生成骨架、修改archetype-metadata.xml配置,直至在本地和远程仓库安装部署的过程。此外,还讲解了如何在IDEA中使用自定义的骨架模板进行项目初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven-archetype多模块骨架创建以及使用

  1. 背景

    公司项目都是各分公司,各团队自己创建的,没有统一过,从业务中沉淀下来的各种工具方法、业务包装等都各自实现、产生很多已解决的坑其他团队在趟一次,急需要统一框架,并且引入针对于通用的处理和包装;

  2. 创建多模块骨架

    这里要多说一句,会有很多误区,这里要先创建一个 maven 多模块工程,先不要考虑怎么制作成模板,要先创建一个 无错误可运行,是你最终想要的一个多模块工程;

    <groupId>com.clear</groupId>
       <artifactId>test-project</artifactId>
       <packaging>pom</packaging>
       <version>1.0-SNAPSHOT</version>
       <modules>
           <module>test-web</module>
           <module>test-service</module>
           <module>test-common</module>
           <module>test-api</module>
           <module>test-dao</module>
           <module>test-domain</module>
           <module>test-rpc</module>
           <module>test-client</module>
       </modules>
    

    可以看到,这里创建了一个maven多模块的工程,test-project,里面有8个模块 各个模块的定义可以看模块名称就知道,这里不过多赘述

工程结构

  1. 接下来根据创建的模板来生成maven骨架

    进入当前项目 test-project 的根目录,然后执行命令

    maven archetype:create-from-project
    

    第一次需要下载很多jar 包,时间稍微有点长,成功之后可以看到在项目根目录有 target 目录;

archetye工程结构

注意:target/generated-sources/archetype/src/main/resources/archetype-resources目录下的模块这里变成了__rootArtifactId__api了,其实原本这里是test-api我是手动rename改成__rootArtifactId__了,这里大家会有疑问为什么要手动改成__rootArtifactId__开头因为这里涉及到多模块的动态命名,总之大家手动把它改掉

子模块的命名是父模块的命名 + 子模块的功能名,模版里面是通过__rootArtifactId__占位符来替换自己创建的父模块的artifactId,这样最终生成的模块就是严格按照父模块的artifactId来命名

  1. 更改archetype-metadata.xml配置占位符

target/generated-sources/archetype/src/main/resources/META-INF.maven/ 目录下 更改archetype-metadata.xml 效果如下图

在这里插入图片描述

  1. 执行 mvn install

    进入到 target/generated-sources/archetype/ 目录下执行mvn install

    成功后就会在本地 repo仓库中有个配置文件archetype-catalog.xml

  2. deploy 到私服

    target/generated-sources/archetype/pom.xml 文件里加入私服地址

    <distributionManagement>
        <repository>
          <id>nexus-releases</id>
          <url>http://1.1.1.1:19012/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
          <id>nexus-snapshots</id>
          <url>http://1.1.1.1:19012/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
      </distributionManagement>
    

然后再target/generated-sources/archetype/ 下 执行

mvn deploy

这样就发布到我们私服里了。至此maven多模块骨架工程的生成就告一段落,

那么怎么使用呢?使用有两种方式 :

  • 本地使用

    本地使用很简单 使用命令 mvn archetype:generate -DarchetypeGroupId=com.test -DarchetypeArtifactId=test-project-archetype -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeCatalog=local -DgroupId=com.test -DartifactId=test -Dversion=1.0-SNAPSHOT

  • 远程使用

    在IDEA里 NEW > Project 选择 Maven Archetype 2022 版本在 Manage catalogs 里add 私服地址 http://1.1.1.1:19012/nexus/content/groups/public 并且选中,然后再 Archetype 选项里点击下拉按钮,选择我们的骨架 com.test:test-project-archetype 然后设置 Advanced Settings 里的 gav信息就可以了;

    2022版本之前的 需要勾选 NEW > Project 后勾选 Create from archetype 然后点击 Add Archetype 按钮,在弹出的对话框中填写 gav信息和 私服地址 http://1.1.1.1:19012/nexus/content/groups/public 之后在列表里选中此模块点击Next,在第二步里注意 archetype 的value 要填入工程模板的名字 如 test-project-archetype

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值