在上一次的 问题博客 中有涉及到一个问题是关于 Maven 打包的问题,没想到在这个问题上又栽了一遍,还是有必要单独出(shui)一篇博客出来说一下。
在使用框架 V3.5.0 版本的时候会有一个问题就是 Maven 打包会损坏资源文件。
问题出现在这里:父工程 pom.xml
上次的博客提供了一种解决方法,增加一个插件:
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-resources-pluginartifactId>
<version>3.1.0version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsxnonFilteredFileExtension>
<nonFilteredFileExtension>xlsnonFilteredFileExtension>
nonFilteredFileExtensions>
configuration>
plugin>
后来我去看框架更新日志才看到在 V4.0.0 已经解决了这个问题:
参考新版的写法可以直接修改
配置:
<resources>
<resource>
<directory>src/main/resourcesdirectory>
<filtering>falsefiltering>
resource>
<resource>
<directory>src/main/resourcesdirectory>
<includes>
<include>application*include>
<include>bootstrap*include>
<include>banner*include>
includes>
<filtering>truefiltering>
resource>
resources>
标签启用过滤的目的是在打包的时候替换配置,举个例子:
@..@
在 Apache Maven Resources Plugin 文档中演示的写法都是 ${...}
,这里除了这种还有就是上图的 @..@
写法。这种写法是来自于 Spring 官方说明 的:
大致意思就是 application.properties
和 application.yml
文件接受 Spring 风格的占位符 ${...}
,Maven
改为使用 @..@
占位符写法。
spring-boot-maven-plugin
以及 maven-compiler-plugin
在查资料的时候发现 Spring 文档写的是 spring-boot-maven-plugin
这个插件,和 maven-compiler-plugin
看起来有点像,就去搜索了一下,原来这俩不能说一模一样,简直毫无关系。
spring-boot-maven-plugin
说明:
maven-compiler-plugin
说明:
说句人话:
spring-boot-maven-plugin
用于 Spring Boot 项目打包。maven-compiler-plugin
用户项目代码编译。