从buildscript获取设置对象

时间:2014-10-25 19:24:59

标签: gradle settings project

我正在尝试从根项目的构建脚本访问设置对象。

原因是我想在settings.gradle文件中定义一个列表,该列表将是一个子项目列表,类似于:

settings.gradle

projectNames = ['prjA', 'prjB']

想做类似的事情:

build.gradle (根项目)

projectNames = settings.projectNames
// Use projectName in tasks

然后在build.gradle中访问它以执行各种任务,例如将这些名称解析为URL以进行git-clone。但是,我似乎无法找到一种方法来声明这两个脚本之间可见的任意groovy对象。注意我可能希望该列表相关但不等于项目名称。我想这个问题总结为在这两个文件之间共享POGO并访问设置对象。

我对Gradle很新。

2 个答案:

答案 0 :(得分:6)

无法从构建脚本访问settings对象。但是,两个脚本共享一个gradle对象,您可以使用该对象在设置脚本中设置一个额外的属性(例如gradle.ext.foo = "bar"),并在构建脚本中读取它(例如println gradle.foo

答案 1 :(得分:0)

如果需要在构建后从build.gradle文件访问Settings实例 设置已经加载和评估,您可以注册生命周期关闭或侦听器。 一个很好的起点是Gradle#settingsEvaluated(Closure)方法 提供Settings对象作为关闭参数。