Build Java源中的Gradle项目版本属性
在我的应用程序中,我在主类中将“user frendly”版本作为公共字符串常量进行维护Build Java源中的Gradle项目版本属性,build,gradle,Build,Gradle,在我的应用程序中,我在主类中将“user frendly”版本作为公共字符串常量进行维护 是否可以在build.gradle中检索此变量以设置项目的版本属性?目前我必须手动执行此操作,这当然会导致问题。维护“用户友好”版本的正确方法是version.properties文件,存储在源代码树中。例如,在src/main/resources下。然后可以在Gradle脚本中加载此属性文件: def config=new-ConfigSlurper().parse(新文件(“src/main/resou
是否可以在build.gradle中检索此变量以设置项目的版本属性?目前我必须手动执行此操作,这当然会导致问题。维护“用户友好”版本的正确方法是
version.properties
文件,存储在源代码树中。例如,在src/main/resources
下。然后可以在Gradle脚本中加载此属性文件:
def config=new-ConfigSlurper().parse(新文件(“src/main/resources/version.properties”).toURL())
println(config.versionNumber)
维护“用户友好”版本的正确方法是存储在源代码树中的version.properties
文件。例如,在src/main/resources
下。然后可以在Gradle脚本中加载此属性文件:
def config=new-ConfigSlurper().parse(新文件(“src/main/resources/version.properties”).toURL())
println(config.versionNumber)
我已经加上了尼基塔的答案,非常好
但是,首先,File.toURL()
现在被弃用。最好是这样:
ConfigObject conf = new ConfigSlurper().parse( file("src/main/resources/version.properties").toURI().toURL());
其次,注意这里的文件(…
,而不是新文件(…
如果这一行要包含在build.gradle
中,则前者相对于gradle项目的根目录路径生成一个文件
,实际上是一个方法。值得知道的是,build.gradle
中似乎“不知从何而来”的每个方法或属性实际上是底层“不可见”Gradle项目的方法或属性
如果你把新文件(“src/main…”)
放在build.gradle
中,就像Nikita的回答一样,如果在控制台上用当前目录project/root目录运行gradle任务,你实际上不会注意到任何问题……但是(根据我的实验)例如,如果在Eclipse中使用GradleTasks窗口,那么您将创建一个相对于Eclipse运行所在目录的文件
路径……这将给出一条错误消息,说明“系统找不到指定的路径”
因此,使用文件(…
),您可以(在build.gradle
中)执行以下操作:
注意version
这里是Project的另一个属性…但是如果您查看上面的Project
的Javadoc,您会感到困惑,因为它不在那里!但是,您将看到getVersion()
和setVersion(…)
。使用Groovy,Groovy magic会自动为每个属性提供自己的getter和setter方法。我花了一周时间学习了一点Groovy,这实际上是一种很棒的语言,强烈建议您熟悉一下它,并使Gradle的学习过程大大减少了痛苦
但是,您可以在Gradle类项目的DSL(域特定语言)API中找到版本属性
文件version.properties
通常包含以下内容:
versionNumber='1.0.0'
NB从您的代码访问版本…如果您想从应用程序代码(或测试代码)访问此版本号,您确实需要使用新文件(…
:
ConfigObject conf = new ConfigSlurper().parse( new File("src/main/resources/version.properties").toURI().toURL());
就像尼基塔的回答一样。我已经加上了尼基塔的答案,这很好
但是,首先,File.toURL()
现在已不推荐使用。类似这样的内容更可取:
ConfigObject conf = new ConfigSlurper().parse( file("src/main/resources/version.properties").toURI().toURL());
其次,注意这里的文件(…
,而不是新文件(…
如果这一行要包含在build.gradle
中,则前者相对于gradle项目的根目录路径生成一个文件
,实际上是一个方法。值得知道的是,build.gradle
中似乎“不知从何而来”的每个方法或属性实际上是底层“不可见”Gradle项目的方法或属性
如果你把新文件(“src/main…”)
放在build.gradle
中,就像Nikita的回答一样,如果在控制台上用当前目录project/root目录运行gradle任务,你实际上不会注意到任何问题……但是(根据我的实验)例如,如果在Eclipse中使用GradleTasks窗口,那么您将创建一个相对于Eclipse运行所在目录的文件
路径……这将给出一条错误消息,说明“系统找不到指定的路径”
因此,使用文件(…
),您可以(在build.gradle
中)执行以下操作:
注意version
这里是Project的另一个属性…但是如果您查看上面的Project
的Javadoc,您会感到困惑,因为它不在那里!但是,您将看到getVersion()
和setVersion(…)
。使用Groovy,Groovy magic会自动为每个属性提供自己的getter和setter方法。我花了一周时间学习了一点Groovy,这实际上是一种很棒的语言,强烈建议您熟悉一下它,并使Gradle的学习过程大大减少了痛苦
但是,您可以在Gradle类项目的DSL(域特定语言)API中找到版本属性
文件version.properties
通常包含以下内容:
versionNumber='1.0.0'
NB从您的代码访问版本…如果您想从应用程序代码(或测试代码)访问此版本号,您确实需要使用新文件(…
:
ConfigObject conf = new ConfigSlurper().parse( new File("src/main/resources/version.properties").toURI().toURL());
正如Nikita的回答一样。你可能想用另一种方法:在属性文件中设置版本,然后从那里获取。我应该把这个属性文件放在哪里?你可能想