很抱歉这个简单的问题,但我是Java和Gradle的新手。我只是在寻找最简单的解决方案。
所以我创建了一个类:
public final class VERSION {
public static final Integer majorVersion = 1;
public static final Integer minorVersion = 0;
public static final Integer patchVersion = 0;
...
}
虽然我是Java的新手,但我使用了与各种语言类似的模式,我很满意。
问题是我的项目的build.gradle文件还定义了:
version "1.0.0-SNAPSHOT"
我可以在一个地方定义版本号的简单方法,所以我不会忘记同步更新它们?
答案 0 :(得分:2)
简单的方法是在构建文件或gradle.properties文件中定义它。
在项目资源中有一个version.properties文件(src / main / resources);
version=@version@
,并配置processResources
任务以过滤此文件,以替换此文件中的版本密钥:
def tokens = ['version': project.version]
processResources {
filesMatching('version.properties') {
filter(ReplaceTokens, tokens: tokens)
}
inputs.properties(tokens);
}
然后,在您的Java代码中,只需从version.properties
资源加载版本:
Properties props = new Properties();
props.load(MyClass.class.getResourceAsStream("/version.properties");
String version = props.getProperty("version");
未经测试,但您应该明白这一点。