工程规范
:项目的groupId要和顶级包名一致。不然创建出来的模板要手工改很多地方,一致的话就可以直接用${groupId}
代替了。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-archetype-pluginartifactId>
<version>3.2.0version>
<configuration>
<propertyFile>archetype.propertiespropertyFile>
configuration>
plugin>
plugins>
build>
-Xms256m -Xmx512m -Dfile.encoding=UTF-8
当我们使用 maven-archetype-plugin 插件基于当前项目生成一个 archetype 模板项目时,该插件默认会把当前项目下所有的文件都会打包到 jar包中。
实际上我们希望在 build 的时候能过滤一些非必要的文件目录,如 .idea目录、 README.md 等,这时只需要在构建的时候,配置一个 archetype.properties
文件参数,并在其中定义 excludePattern
属性来过滤文件或目录。
excludePatterns
参数可以指定多个过滤条件,以英文逗号分割即可。
不过需要注意的是,如果想过滤整个目录,如 .idea
目录,需要配置为: .idea/*
而不能仅填写为 idea ,这个 .gitignore
配置还是有差别的。
# 打包过滤文件
excludePatterns=.idea/*,.git,*.iml,.idea/
把.gitignore
重命名为__gitignore__
,然后在archetype.properties
中加入以下内容
gitignore=.gitignore
mvn archetype:create-from-project --settings D:\DevelopTools\apache-maven-3.6.3\conf\settings.xml
进入创建好的Archetype所在目录:target\generated-sources\archetype
运行以下命令
mvn install
mvn archetype:generate -DarchetypeCatalog=local
groupId ,artifactId,version,package
,然后回车输入Y即可创建一个新的工程http://localhost:8080/hello
,可以看到成功找到项目的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/resourcesdirectory>
<includes>
<include>**/*.ymlinclude>
includes>
fileSet>
加了以后,生成的新工程就会替换成对应的artifactId
spring:
application:
name: user-center