从build.gradle获取价值并编写代码

时间:2018-08-03 09:21:26

标签: java gradle build.gradle

我们有一个build.gradle,其中定义了version。我需要实现一个版本端点(例如/version)来获取项目的版本。 version中的build.gradle属性已经存在很长时间了,我无法将其移至project.properties文件中。如何从Java代码访问version的值?

2 个答案:

答案 0 :(得分:2)

您可以通过多种方式将信息“植入”代码中

首先,您可以使用清单文件,并从中读取

jar {
  manifest {
    attributes(
      "lib-version": version
  }
}

Reading my own Jar's Manifest

一起使用

另一种选择是在jar任务之前将该信息添加到您的属性文件中

task('addVersion') {
    doLast {
       //append the version here, see example
       file("src/main/resources/props.properties").append("version=$version")
    }
}
jar.dependsOn(addVersion)

答案 1 :(得分:1)

我们的一个项目不仅需要版本信息,还需要构建时间等。我们使用带有模板替换的复制任务。

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')
}