小编典典

使用Gradle从战争中删除/删除文件

spring-boot

我正在使用gradle构建一个Spring
Boot应用程序,并且希望application.properties从战争中删除该文件,因为该文件将在外部加载(这是在tomcat容器中运行的,而不是嵌入式的)。

我环顾了Gradle文档,试图弄清楚该怎么做,但是我不知道该绑定哪个阶段,以及是否在创建战争之前或之后排除该文件。似乎还有多种处理文件的方法。

我相信Maven会使用packagingExcludes等效的方法。


阅读 492

收藏
2020-05-30

共1个答案

小编典典

尽管我无法阻止将文件添加到战争中,但是在战争创建后我能够删除文件-部分原因是此问题的提示:是否有一种从文件中删除文件的快速方法Jar /war无需解压缩jar并重新创建它?

在我的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命令从战争中删除文件。

2020-05-30