有粉丝问我:“用DDD开发项目时,每个业务模块都要包含四个分层:接口层(Interface Layer)、应用层(Application Layer)、领域层(Domain Layer)、基础设施层(Infrastructure Layer)。问题来了,每次创建一个新的业务模块,都得手动创建这四个Maven模块,手动添加简直太麻烦了!有没有什么更快捷的方式?”
别担心,今天就来解决这个问题:手把手教你如何制作一个Maven脚手架,轻松提高开发效率,避免重复劳动,直接提升幸福感!
1、生成脚手架原型工程
步骤一:创建基于DDD的多模块项目 ddd-archetype
首先,创建一个基于DDD的多模块项目 ddd-archetype,在这个项目中,我们需要添加DDD的分层模型。看图:
图片
在每个具体的模块中,我们要创建DDD需要的 java package,并且在这些空包中创建一个名为 .keep 的空文件。
为什么要这样做?这是因为默认情况下,脚手架模板会忽略空的文件夹,而我们通过添加 .keep 文件,能够保证在后续创建项目时,这些空文件夹会被自动生成,包名也能对得上。
同时,在ddd-archetype项目的 pom.xml 文件中,需要引入 maven-archetype 插件,通过此插件可以生成脚手架原型工程文件。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.3.1</version>
</plugin>
</plugins>
</build>
再创建一个名为 archetype.properties 的配置文件,内容如下:
excludePatterns=.idea/*,.git,*.iml,.idea/
gitignore=.gitignore
好了,准备工作完成,接下来进入最重要的步骤!
步骤二:生成原型文件
接着,打开IDEA,找到右侧的 Maven 插件管理器,选择并执行 archetype:create-from-project 命令,这样就能生成原型文件了!
图片
执行完后,你会在 ddd-archetype 项目的 target 文件夹下找到生成的原型工程。在这个原型文件里,已经生成了五个模块目录。这就是我们准备好的“模板”,未来的新项目都可以直接用它来快速搭建!
图片
打开生成的文件可以发现有不少占位符,解释如下:
- _rootArtifactId_:文件夹名替换用。比如:_rootArtifactId_-dao,用来动态获取父工程的 ArtifactId。
- ${rootArtifactId}:保存用户输入的值作为项目名,简单来说,它就是你在创建项目时输入的名字。
- ${artifactId}:如果项目只有一个模块,这个值跟 ${rootArtifactId} 相同;如果有多个模块,它会被替换成每个模块的名字。
- ${groupId}:你为项目提供的 groupId,Maven 会在提示时询问你。
- ${version}:就是版本号,老实说,它可以是你想要的任何数字,但通常我们会用 1.0-SNAPSHOT。
2、将脚手架安装到本地
接下来,我们要做的就是安装这个脚手架。进入刚刚生成的原型文件夹,执行 mvn clean install 命令,安装脚手架到本地。
$ pwd
D:\GitSpace\ddd-archetype\target\generated-sources\archetype
$ mvn clean install
执行完后,你会看到类似如下的日志,表示脚手架安装成功:
[INFO] --- maven-archetype-plugin:3.3.1:update-local-catalog (default-update-local-catalog) @ ddd-archetype-archetype ---
[INFO] Updated local archetypes catalog D:\maven\repository\archetype-catalog.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.526 s
[INFO] Finished at: 2024-12-02T16:01:52+08:00
[INFO] ------------------------------------------------------------------------
安装成功后,archetype-catalog.xml 文件会被更新,这个文件决定了在哪里寻找可以运行的原型来生成目标项目。打开它,你会看到自己刚刚创建的脚手架内容:
<archetype>
<groupId>com.jianzh5</groupId>
<artifactId>ddd-archetype-archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<description>ddd-archetype-archetype</description>
</archetype>
3、应用脚手架,快速生成DDD项目
好了,最后一步,开始用脚手架创建你的DDD项目!在IDEA中,创建新项目时,先配置 Maven Catalogs,如下图所示,添加一个名为 ddd 的 Catalog,Location 选择 archetype-catalog.xml 所在目录(在我这里是 D:\maven\repository)。
图片
然后输入你想要创建的项目名称,点击“创建”,你就能根据选定的脚手架生成一整套的模块目录,效果如下:
图片
图片
以后只需要选个脚手架模板,输入项目名,剩下的交给脚手架来搞定!