我正在尝试从根项目的构建脚本访问设置对象。
原因是我想在settings.gradle文件中定义一个列表,该列表将是一个子项目列表,类似于:
settings.gradle
projectNames = ['prjA', 'prjB']
想做类似的事情:
build.gradle (根项目)
projectNames = settings.projectNames
// Use projectName in tasks
然后在build.gradle中访问它以执行各种任务,例如将这些名称解析为URL以进行git-clone。但是,我似乎无法找到一种方法来声明这两个脚本之间可见的任意groovy对象。注意我可能希望该列表相关但不等于项目名称。我想这个问题总结为在这两个文件之间共享POGO并访问设置对象。
我对Gradle很新。
答案 0 :(得分:6)
无法从构建脚本访问settings
对象。但是,两个脚本共享一个gradle
对象,您可以使用该对象在设置脚本中设置一个额外的属性(例如gradle.ext.foo = "bar"
),并在构建脚本中读取它(例如println gradle.foo
)
答案 1 :(得分:0)
如果需要在构建后从build.gradle文件访问Settings实例 设置已经加载和评估,您可以注册生命周期关闭或侦听器。 一个很好的起点是Gradle#settingsEvaluated(Closure)方法 提供Settings对象作为关闭参数。