如何在 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@,就像你想要的那样。
我为 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@,就像你想要的那样。