我有一个使用Gradle构建的Groovy应用程序。像往常一样,我在build.gradle
脚本中定义了应用程序版本号/字符串。
现在我想在Groovy应用程序中使用该版本字符串,作为硬编码的静态信息。例如,作为主应用程序类中的final static
成员:
class MyApp {
final static APP_VERSION = "0.1"
}
由于版本信息来自build.gradle
脚本,因此在编译源代码之前,需要由Gradle设置上面的Groovy类成员。
换句话说:我需要一个Gradle任务,允许我在Grodle构建变量之前设置变量的值。我可以通过正则表达式搜索该值并将其替换为Groovy源文件,但这感觉有点笨拙。
任何"最佳实践"想法如何实现?
答案 0 :(得分:0)
我无法给你最终解决方案,但我认为你应该看看AST Transformations
另一种选择,如果你在jar / war中打包应用程序, - 你可以从清单文件中获取应用程序的一个版本(但是如果你从IDE启动应用程序它将不起作用)
final static versin = MyApp.class.getPackage().getSpecificationVersion()