官方教程
1 创建一个工程,单模块的,项目结构如下
工程规范
:项目的groupId要和顶级包名一致。
不然创建出来的模板要手工改很多地方,一致的话就可以直接用${groupId}
代替了。
2 pom.xml加入maven-archetype-plugin插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<propertyFile>archetype.properties</propertyFile>
</configuration>
</plugin>
</plugins>
</build>
3 新增Maven环境变量MAVEN_OPTS
-Xms256m -Xmx512m -Dfile.encoding=UTF-8
4 新增archetype.properties
当我们使用 maven-archetype-plugin 插件基于当前项目生成一个 archetype 模板项目时,该插件默认会把当前项目下所有的文件都会打包到 jar包中。
实际上我们希望在 build 的时候能过滤一些非必要的文件目录,如 .idea目录、 README.md 等,这时只需要在构建的时候,配置一个 archetype.properties
文件参数,并在其中定义 excludePattern
属性来过滤文件或目录。
excludePatterns
参数可以指定多个过滤条件,以英文逗号分割即可。
不过需要注意的是,如果想过滤整个目录,如 .idea
目录,需要配置为: .idea/*
而不能仅填写为 idea ,这个 .gitignore
配置还是有差别的。
# 打包过滤文件
excludePatterns=.idea/*,.git,*.iml,.idea/
5 添加.gitignore
把.gitignore
重命名为__gitignore__
,然后在archetype.properties
中加入以下内容
gitignore=.gitignore
6 构建archetype
进入工程目录,运行以下命令
mvn archetype:create-from-project --settings D:\DevelopTools\apache-maven-3.6.3\conf\settings.xml
构建完成后会在target看到这个archetype
7 安装archetype到本地仓库
进入创建好的Archetype所在目录:target\generated-sources\archetype
运行以下命令
mvn install
8 使用自定义archetype
进入一个新的目录,执行以下命令
mvn archetype:generate -DarchetypeCatalog=local
这里选3,就是刚才生成的那个archetype
依次填上groupId ,artifactId,version,package
,然后回车输入Y即可创建一个新的工程
创建完毕
9 打开工程并验证
新的工程和原工程一样
现在启动并验证
输入http://localhost:8080/hello
,可以看到成功
10 文件属性替换
找到项目的target\generated-sources目录下有一个archetype文件,这个就是骨架文件。在里面有个archetype-metadata.xml
,这个文件是基础配置。
如果在配置文件或其它地方有用到Archetype的变量,如在application.yml的spring.application.name
spring:
application:
name: ${
artifactId}
这样就需要在archetype-metadata.xml配置yml的地方加上filtered="true"
,加了这个属性的会进行属性变量替换。如下
<fileSet encoding="UTF-8" filtered="true">
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
</includes>
</fileSet>
加了以后,生成的新工程就会替换成对应的artifactId
spring:
application:
name: user-center