在ProcessResources期间使用gradle筛选器资源进行IntelliJ Build Artifact

arb*_*erg 5 java war intellij-idea gradle

问题: 我们如何使IntelliJ Build工件替换我们的processResources Gradle任务中的令牌字符串。我想避免手动配置IntelliJ,我认为这是“蚂蚁预处理”。我希望配置仅在Gradle脚本中。

我们的环境:

我们使用Gradle构建战争容器,并使用IntelliJ作为IDE。在开发过程中,我们使用IntelliJ的“构建工件”在IntelliJ中部署了爆炸工件。我们的Gradle流程资源使用ant ReplaceToken过滤了一些log4j.xml文件和类似文件,如下所示

processResources {
        filter(ReplaceTokens, tokens: [VERSION_TOKEN: version])
}
Run Code Online (Sandbox Code Playgroud)

我们使用IntelliJ的import Gradle模块,并创建类型为'Web'的'Web Gradle'方面资源工件。当我们让Intellij构建我们的工件并在开发中部署爆炸战争时。IntelliJ的构建工件按照流程资源中的定义执行过滤器令牌替换。

但是,此processResources定义会命中所有文件,并且会破坏我的PNG文件。

以下内容在Gradle中仍然有效,但是现在IntelliJs构建Artifact不能替代令牌

processResources {
    filesMatching('**/log4j2.xml') {
        filter(ReplaceTokens, tokens: [VERSION_TOKEN: version])
    }
}
Run Code Online (Sandbox Code Playgroud)

同样,如果我在中做替换doFirst{}或做一个eachFile { copyDetails -> if (copyDetails.path == 'log4j2.xml') { filter... } }}