我正在使用gradle构建一个Spring Boot应用程序,我希望将application.properties
文件从战争中删除,因为它将在外部加载(这是在tomcat容器中运行,而不是嵌入式)。
我查看了StackOverflow和Gradle文档以试图弄清楚要做什么,但我不知道要绑定哪个阶段,以及我是否在创建战争之前或之后排除了该文件。似乎还有多种处理文件的方法。
我相信Maven使用packagingExcludes
作为等价物。
答案 0 :(得分:1)
您还可以选择,如果您不关心将这些属性文件从 src/main/resources 复制到 build/resources/main 文件夹(不仅仅是在将 build/resources/main 复制到战争),你可以使用:
在 build.gradle 文件中;
processResources {
exclude('application.properties')
}
答案 1 :(得分:0)
虽然我无法阻止文件被添加到战争中,但我可以在创建战争后删除文件 - 部分原因是这个问题的提示:Is there a quick way to delete a file from a Jar / war without having to extract the jar and recreate it?
在我的build.gradle
文件中,我使用war
命令附加exec
命令,以便在创建war文件后运行命令。该命令将从战争中删除application.properties
文件。这就是任务扩展的样子:
war << {
exec {
workingDir 'build/libs'
commandLine 'zip', '-d', "${appName}-${appVersion}.war", 'WEB-INF/classes/application.properties'
}
}
简而言之,它将工作目录更改为gradle放置战争的位置,然后使用zip
命令从战争中删除文件。