Maven项目脚手架

Github:https://github.com/Aresyi/ydj-probase

一、背景&目标

当前新建项目时,配置文件往往都是从其它项目拷贝过来,拷贝时很容易踩坑,并且不容易定位问题。尤其对新人来说由于在对公司项目结构、基础中间件、配置还不了解的情况下,会浪费很多不必要的时间。故,希望通过脚手架解决此痛点,达到如下几个基本目标:

  • 1.统一规范工程项目&代码层次结构——约定大于配置;
  • 2.提升工作效率——脚手架&代码生成器&自定义插件;
  • 3.降低项目维护成本——易于组内成员相互协防;

另,发现当前各自创建的项目,存在如下几个现象,希望借机推进组内代码规范落地:

  • 1.项目&包层次结构不统一;
  • 2.配置文件命名、存放位置不统一;
  • 3.类命名不统一(有的叫entity,有的叫BO,有的叫Domain;有的叫job,有的叫crane,有的叫schedule;接口命名有的I开头,有的无I开头);

希望在项目模板(脚手架)中在每个层次环节代码中直接给予相应的Demo,以此达到规范引导作用。

二、脚手架使用方法

主要有如下三种方式(其中2.1方式主要用在本地有脚手架的前提下):

[INFO] Using property: groupId = com.ydj.test
Define value for property 'artifactId': test-mydemo
[INFO] Using property: artifactId = test-mydemo
Define value for property 'version' 1.0-SNAPSHOT: : 
[INFO] Using property: version = 1.0-SNAPSHOT
Define value for property 'package' com.ydj.test: : com.ydj.test.mydemo

建议提示:不要使用默认包名com.ydj.test,而应com.ydj.test.mydemo

2.1、使用本地maven仓库中脚手架创建新项目

直接执行如下maven命令,根据提示依次输入groupId、version、package信息即可:

mvn archetype:generate -DarchetypeCatalog=local

2.2、使用发布到公司maven私服的脚手架创建新项目——命令方式

mvn archetype:generate -DarchetypeGroupId=com.ydj.test -DarchetypeArtifactId=ydj-probase-archetype -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeCatalog=internal

2.3、使用发布到公司maven私服的脚手架创建新项目——IDEA界面方式

在这里插入图片描述(和我们平时使用官方的脚手架一样)

三、脚手架创建过程

3.1、抽象简化出一模板项目ydj-probase

(模板骨架项目中保留如pom、spring、log4j等最小配置和最基本示例代码)
在这里插入图片描述

3.2、生成脚手架

  • 在ydj-probase根路径下执行maven命令:
mvn archetype:create-from-project
  • 按需编辑archetype-metadata.xml文件(如添加了如appKey非默认属性,则需要同时编辑test/resources/projects/basic/archetype.properties文件):
<requiredProperties>
  <requiredProperty key="artifactId"/>
  <requiredProperty key="groupId">
    <defaultValue>com.ydj.test</defaultValue>
  </requiredProperty>
  <requiredProperty key="version"/>
  <requiredProperty key="package">
    <defaultValue>${groupId}</defaultValue>
  </requiredProperty>
  <requiredProperty key="appKey">
    <defaultValue>${artifactId}</defaultValue>
  </requiredProperty>
</requiredProperties>
  • 然后 target/generated-sources/archetype 即是根据ydj-probase生成的脚手架。切换到archetype目录下再执行以下maven命令,将刚才创建的骨架,安装到maven本地的repository目录下:
mvn install
  • 在archetype目录下继续执行如下maven命令,让maven能够找到该项目并且知道它是个骨架项目(信息将保存到如/Users/ares/.m2/repository/archetype-catalog.xml文件中):
mvn archetype:crawl

3.3、发布脚手架到公司私服

  • 在target/generated-sources/archetype下pom.xml文件添加如下:
    <distributionManagement>
        <repository>
            <id>maven-releases</id>
            <name>maven-releases</name>
            <url>http://mvn.ydj.com/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>maven-snapshots</id>
            <name>maven-snapshots</name>
            <url>http://mvn.ydj.com/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
  • 然后,继续执行如下mave命令发布到公司的maven私服仓库:
mvn deploy
  • 即发布脚手架:
脚手架信息:
archetypeGroupId=com.ydj.test
archetypeArtifactId=ydj-probase-archetype
archetypeVersion=1.0-SNAPSHOT
name=ydj-probase-archetype

Github:https://github.com/Aresyi/ydj-probase

### 如何使用 Maven Archetype 创建新项目 #### 使用命令行工具创建基础 Maven 项目 为了快速搭建一个新的 Maven 项目,可以采用 `mvn archetype:generate` 命令来实现。此方法允许开发者通过指定参数来自动生成所需结构的基础工程文件。 对于希望在特定路径下建立 Java 应用程序实例的情况,可参照如下指令: ```bash mvn archetype:generate \ -DgroupId=com.deewin \ -DartifactId=javaProjectTest \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false ``` 上述命令会在当前工作目录中生成名为 `javaProjectTest` 的 Maven 工程,并设置其包名空间为 `com.deewin`[^2]。 #### 自动生成定制化模板 如果已有现成的应用作为蓝本,则可以通过该应用反向提取出一套专属的 Archetype 模板供后续重复利用。具体做法是在目标项目的根目录内执行以下命令完成模板导出: ```bash mvn archetype:create-from-project ``` 这一步骤能够捕获现有配置并打包成为新的 Archetype 描述符,在未来的新建过程中可以直接调用这个自定义模版来进行更高效的开发准备[^3]。 #### 利用 IDE 图形界面简化流程 除了命令行方式外,现代集成开发环境(IDE),比如 IntelliJ IDEA 或 Eclipse 提供了图形化的向导帮助用户更加便捷地初始化 Maven 项目。只需按照提示选择合适的选项卡以及填写必要的信息字段就能轻松达成目的[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值