Gradle / Java在单个位置定义版本

时间:2016-03-09 17:00:51

标签: java gradle

很抱歉这个简单的问题,但我是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"

我可以在一个地方定义版本号的简单方法,所以我不会忘记同步更新它们?

1 个答案:

答案 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");

未经测试,但您应该明白这一点。