如何从Spring Boot Jar中排除资源文件?
我正在使用maven-spring-boot
jar生成插件。我有多个配置为(application-production.yml,
application-test.yml, application-development.yml)的资源文件。
问题是,当我为客户生成发行版时,我想排除开发和测试文件。是否可以在maven-spring-boot
插件中排除资源文件?
我尝试了这个:
<build> <resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application-dev*</exclude>
<exclude>application-test*</exclude>
</excludes>
</resource>
</resources>
</build>
但是maven插件使用其自己的脚本进行资源管理(例如@ val @替换等),如果将其添加到pom,则在打包过程中会失败:
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character @ '@' that cannot start any token. (Do not use @ for indentation)
in 'reader', line 4, column 18:
project.version: @project.version@
没有它,它可以正常工作。
回答:
代替使用maven-spring-boot插件,使用maven-resource插件和maven配置文件:
<profiles> <profile>
<id>prod</id>
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>[your directory]</directory>
<excludes>
<exclude>[non-resource file #1]</exclude>
<exclude>[non-resource file #2]</exclude>
<exclude>[non-resource file #3]</exclude>
...
<exclude>[non-resource file #n]</exclude>
</excludes>
</resource>
</resources>
</build>
</profile>
</profiles>
确保<filtering>true</filtering>
在资源元素内指定选项。
为每种环境创建一个配置文件并过滤这些文件。
确保使用适当的配置文件执行Maven:
mvn clean install -P prod
要查看maven-resource插件的更多示例,请查看maven-
resource
如果您想了解有关个人资料的更多信息,请查看个人资料
以上是 如何从Spring Boot Jar中排除资源文件? 的全部内容, 来源链接: utcz.com/qa/426669.html