当前位置: 首页 > 知识库问答 >
问题:

使用Gradle从war中删除/删除文件

上官凯歌
2023-03-14

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

我查看了StackOverflow和Gradle文档,试图找出该做什么,但我不知道该绑定到哪个阶段,以及在创建war之前还是之后排除该文件。处理文件似乎也有多种方法。

我相信Maven使用packagingexcludes作为等价物。

共有1个答案

凌博实
2023-03-14

虽然我不能阻止将文件添加到war,但我能够在war创建后删除文件--这在一定程度上要感谢这个问题的提示:有没有一种快速的方法可以从Jar/war中删除文件,而不必提取Jar并重新创建它?

在我的build.gradle文件中,我将war命令附加了exec命令,以便在创建war文件后运行命令。该命令将从WAR中删除application.properties文件。这就是任务扩展的外观:

war << {
    exec {
        workingDir 'build/libs'
        commandLine 'zip', '-d', "${appName}-${appVersion}.war", 'WEB-INF/classes/application.properties'
    }
}

简而言之,它将工作目录更改为gradle放置war的位置,然后使用zip命令从war中删除一个文件。

 类似资料:
  • 我对gradle比较陌生,所以这可能是一个典型的新问题。 在我们的gradle构建中,我们有一组war文件(依赖项),它们都包含一个文件,在构建ear文件之前,我们需要从这些war文件中删除该文件。 我假设我将创建一个新任务并添加一些“依赖”声明。 如何创建为每个WAR文件执行的任务?做这件事最好的方法是什么? 有什么办法能让我在一个任务中完成这件事吗?例如。使用zipTree(foobarwit

  • 有没有办法从一个巨大的xml文件中删除注释( 两者,根元素前的注释 和内的注释 最好的解决方案是使用xPath。我试过了 它适用于DOM,但不适用于vtd xml 这是我选择评论的代码 但此处的屏幕上打印的是nothing。 有没有办法用vtd xml做到这一点? 谢谢你的帮助。

  • 问题内容: 我正在尝试同时从Firebase数据库中的多个位置删除数据。 在火力地堡文档状态: “删除数据的最简单方法是在对数据位置的引用上调用removeValue。您还可以通过将nil指定为另一个写操作(例如setValue或updateChildValues)的值来进行删除。您可以将此技术与updateChildValues一起使用以进行删除一个API调用中有多个子级。” 我的代码是 所有四

  • 我试图同时删除Firebase数据库中多个位置的数据。 Firebase文档声明: "删除数据的最简单方法是在引用该数据的位置时调用RemveValue。还可以通过将nil指定为其他写入操作(如setValue或updateChildValue)的值来删除。可以将此技术与updateChildValue一起使用,在单个API调用中删除多个子级。" 我的代码是 所有四条路径都是字符串,但我得到一个错

  • 我让troble从Laravel项目中删除一个文件。该文件位于/storage/exports目录下,它是一个使用Laravel excel库存储在磁盘上的excel。这是我的代码: 当我检查文件的存在与file_exist我得到真,所以Laravel是能够读取文件。我还检查了该文件夹的权限,我使用chmod 777给出了该文件夹的所有权限。 谢谢!