搭建Maven脚手架时一些并不太常见的问题
使用脚手架生成的pom.xml中含有大量空白行
片段如下图,生成的xml含有大量空白行
1 |
|
参考资料
- Remove dom4j library
- Resulting root pom.xml from archetype generation has additional newlines with JDK11
- Multi-modules Archetypes’ Root POM file contains empty lines in Java 11
解决方案
这是maven-archetype-plugin
插件的BUG,起因是maven-archetype-plugin:3.1.1
使用Java XML API
替换了dom4j
用以生成xml,此行为导致不同的Java版本将会影响最终xml的生成结果。
最终解决方案就是换用maven-archetype-plugin:3.1.0
及以下版本,或者使用Java8.
在项目中添加.gitignore文件
脚手架结构如下图所示,其中以.
开头的隐藏文件均为包含在输出目录中
1 |
|
解决方式:
- 修改
pom.xml
升级maven-archetype-plugin
到3.2.1
版本,并设置变量useDefaultExcludes=false
1
2
3
4
5
6
7
8<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<useDefaultExcludes>false</useDefaultExcludes>
</configuration>
</plugin> - 修改
pom.xml
升级maven-resources-plugin
到3.2.0
版本,并设置变量addDefaultExcludes=false
1
2
3
4
5
6
7
8<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<addDefaultExcludes>false</addDefaultExcludes>
</configuration>
</plugin> - 在
archetype-metadata.xml
中添加需要包含的文件1
2
3
4
5
6
7
8
9
10
11
12<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory/>
<includes>
<include>.editorconfig</include>
<include>.gitignore</include>
<include>Dockerfile</include>
<include>lombok.config</include>
<include>.gitlab-ci.yml</include>
</includes>
</fileSet>
</fileSets>
在archetype-metadata.xml中启用代码提示 (适用于所有XML)
按照官方文档将namespace更新为1.1.0版本,并在idea中将光标指向xmlns链接点击获取外部资源即可。
1 |
|