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

Gradle/Java在单个位置定义版本,java,gradle,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和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"

有什么简单的方法可以在一个地方定义版本号,这样我就不会忘记同步更新版本号了?

简单的方法是在构建文件或gradle.properties文件中定义版本号

在项目资源(src/main/resources)中有一个version.properties文件

,并配置
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");

没有经过测试,但您应该知道了。

简单的方法是在构建文件或gradle.properties文件中定义它

在项目资源(src/main/resources)中有一个version.properties文件

,并配置
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");
没有经过测试,但你应该知道