如何在 Gradle 构建产品的文件中替换令牌?

How is a token replaced in a file for a Gradle build product?

我为 Gradle 设置了一个正常的构建脚本,我想做的一件事是指定我的构建版本。这是我设置的用于替换主 Java 源文件中的版本标记的代码:

import org.apache.tools.ant.filters.ReplaceTokens

processResources {
    from (sourceSets.main.java) {
        include 'T145/myproj/Main.java'
        filter(ReplaceTokens, tokens: ['@VERSION@' : project.version])
    }
}

然而它不起作用。我尝试使用 replace 函数,但也没有证明是成功的。我的 Main.java 有一个 public 变量 VERSION 等于 @VERSION@,这就是我想要替换的。

根据我在 Gradle manual example of ReplaceTokens 中看到的内容,您希望去掉过滤器行中的 @,这样它会显示:

filter(ReplaceTokens, tokens: [VERSION : project.version])

Gradle 假设它正在寻找的标记已经有 @ 分隔它,所以它会尝试替换 @@VERSION@@ 而不是 @VERSION@,就像你想要的那样。