有什么方法可以在build.gradle版本字段中使用java变量,这样我每次进行新构建时都不需要手动更改构建脚本?
所以像这样
group = 'project_name'
version = <insert variable from java file>
sourceCompatibility = '1.8'
向后使用Java源文件来管理项目的版本。您应该让您的构建系统(在这种情况下为Gradle)来管理版本。当您在Gradle中更新版本时,您应该以这种方式设置构建,以使新版本在整个项目中传播。
在构建脚本中,这很容易实现。您只version
需要在需要的任何地方引用该属性即可。这个概念与在应用程序中传递数据没有什么不同。请记住,在Gradle中,构建脚本是用Groovy或Kotlin编写的,并且会应用常规的编程逻辑(构建脚本本质上是同时实现org.gradle.api.Project
和的对象org.gradle.api.Script
)。
更加困难的部分是确保您的应用程序可以看到版本,而不必在构建脚本和源代码中都更新版本。但是,有多种方法可以实现此目的,例如:
processResources
Gradle任务将项目的版本注入到该属性文件中。然后在运行时阅读资源以获取应用程序版本。AppVersion.java
代表您的应用程序版本的Java源文件(例如)。jar
Gradle任务设置Implementation-Version
清单的属性。然后在运行时读取此属性以获取应用程序的版本。compileJava
Gradle任务设置模块版本。然后,您可以在运行时读取模块版本。就个人而言,我更倾向于方法#1,#2或#5,而我只会使用方法#3作为最后的手段。我也不确定方法4的可移植性。
您可能还需要考虑将版本保留在gradle.properties
文件中,然后从那里将其读取到构建脚本中(Gradle为此提供了API)。这样,当您更新版本时,无需重新编译构建脚本(至少Kotlin DSL就是这种情况)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句