Java 从'build.gradle'到代码获取值
我们有一个Java 从'build.gradle'到代码获取值,java,gradle,build.gradle,Java,Gradle,Build.gradle,我们有一个build.gradle,其中定义了版本。我需要实现一个版本端点(比如/version)来获取项目的版本。build.gradle中的version属性已经存在很长时间了,我无法将其移动到project.properties文件中。如何从Java代码中访问此版本的值 有许多方法可以将信息“植入”到代码中 首先,您可以使用清单文件,并从中读取 jar { manifest { attributes( "lib-version": version } } 连同
build.gradle
,其中定义了版本。我需要实现一个版本端点(比如/version
)来获取项目的版本。build.gradle
中的version
属性已经存在很长时间了,我无法将其移动到project.properties
文件中。如何从Java代码中访问此版本的值 有许多方法可以将信息“植入”到代码中
首先,您可以使用清单文件,并从中读取
jar {
manifest {
attributes(
"lib-version": version
}
}
连同
另一个选项是在jar任务之前将该信息添加到属性文件中
task('addVersion') {
doLast {
//append the version here, see example
file("src/main/resources/props.properties").append("version=$version")
}
}
jar.dependsOn(addVersion)
有许多方法可以将信息“植入”到代码中
首先,您可以使用清单文件,并从中读取
jar {
manifest {
attributes(
"lib-version": version
}
}
连同
另一个选项是在jar任务之前将该信息添加到属性文件中
task('addVersion') {
doLast {
//append the version here, see example
file("src/main/resources/props.properties").append("version=$version")
}
}
jar.dependsOn(addVersion)
我们的一个项目不仅需要版本信息,还需要构建时间等。我们使用模板替换的复制任务
task updateVersions(type: Copy) {
Properties props = new Properties()
props.load(new FileInputStream(file('build.properties')))
props.put("buildtime", new Date().format("dd MMM yyyy hh:mm aa"))
props.put("version", "${version}")
from project(':main').file('Version.tmpl')
into file('src/main/java').path
expand(props)
rename('Version.tmpl', 'Version.java')
}
我们的一个项目不仅需要版本信息,还需要构建时间等。我们使用模板替换的复制任务
task updateVersions(type: Copy) {
Properties props = new Properties()
props.load(new FileInputStream(file('build.properties')))
props.put("buildtime", new Date().format("dd MMM yyyy hh:mm aa"))
props.put("version", "${version}")
from project(':main').file('Version.tmpl')
into file('src/main/java').path
expand(props)
rename('Version.tmpl', 'Version.java')
}
在汇编任务之前,将gradle中的值附加到属性文件中,或将版本包含在清单文件中并使用getResources读取。在汇编任务之前,将gradle中的值附加到属性文件中,或将版本包含在清单文件中并使用getResources读取