我正在使用gradle构建一个Spring Boot应用程序,并且希望application.properties从战争中删除该文件,因为该文件将在外部加载(这是在tomcat容器中运行的,而不是嵌入式的)。
application.properties
我环顾了Gradle文档,试图弄清楚该怎么做,但是我不知道该绑定哪个阶段,以及是否在创建战争之前或之后排除该文件。似乎还有多种处理文件的方法。
我相信Maven会使用packagingExcludes等效的方法。
packagingExcludes
尽管我无法阻止将文件添加到战争中,但是在战争创建后我能够删除文件-部分原因是此问题的提示:是否有一种从文件中删除文件的快速方法Jar /war无需解压缩jar并重新创建它?
在我的build.gradle文件中,我在war命令后附加了一个exec命令,以便可以在创建war文件后运行命令。该命令将从application.properties战争中删除该文件。这是任务扩展的样子:
build.gradle
war
exec
war << { exec { workingDir 'build/libs' commandLine 'zip', '-d', "${appName}-${appVersion}.war", 'WEB-INF/classes/application.properties' } }
简而言之,它将工作目录更改为gradle放置战争的位置,然后使用zip命令从战争中删除文件。
zip