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

T14*_*145 5 java replace token gradle

我有一个用于 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])
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*zie 3

根据我在ReplaceTokens 的 Gradle 手册示例中看到的内容,您希望删除过滤器行中的 @,以便它显示:

filter(ReplaceTokens, tokens: [VERSION : project.version])
Run Code Online (Sandbox Code Playgroud)

Gradle 假设它正在查找的标记已经用 @ 来分隔它,因此它会尝试替换 @@VERSION@@ 而不是 @VERSION@,就像您想要的那样。