如何以及何时在Gradle中访问属性?
我在如何以及何时在Gradle中访问属性?,gradle,Gradle,我在build.gradle中有以下内容: PlatformUmbrella platformUmbrella = PlatformUmbrella.create(System.properties['module.status']) task setClBeforePublish << platformUmbrella.beforePublish project.tasks.publish.doLast platformUmbrella.afterPublish 但是当检索到
build.gradle中有以下内容:
PlatformUmbrella platformUmbrella = PlatformUmbrella.create(System.properties['module.status'])
task setClBeforePublish << platformUmbrella.beforePublish
project.tasks.publish.doLast platformUmbrella.afterPublish
但是当检索到System.properties['module.status']
或gradle.properties['module.status']
时,将返回null
(可能是因为尚未处理属性)。访问gradle.taskGraph.whenReady
闭包中的gradle.properties['module.status']
时也会返回null
。访问“module.status”设置的正确方法是什么?gradle.properties的内容将自动加载到项目的“额外”属性扩展中,该扩展可通过project.ext
访问
在您的情况下,请尝试project.ext[“module.status”]
。gradle.properties的内容将自动加载到项目的“额外”属性扩展中,该扩展可通过project.ext
访问
在您的情况下,请尝试使用project.ext[“module.status”]
。我可能记错了,但我想我在某个地方读到过project.ext
不推荐使用。不管怎样,即使这是真的,这也行得通。谢谢.AFAIK,project.ext
尚未被弃用。不过,我确实忘记了,在阅读“动态”属性时,没有必要引用ext
部分,因此您可以在场景中使用project[“module.status”]
。但如果要检查属性是否存在,则必须执行类似于project.ext.has(“module.status”)
的操作,如果要在脚本中设置动态属性,则必须执行类似于project.ext[“module.status”]=“snapshot”
或project.ext.newProp=“newValue”的操作
。我可能记错了,但我想我在某个地方读到了project.ext
被弃用的消息。不管怎样,即使这是真的,这也行得通。谢谢.AFAIK,project.ext
尚未被弃用。不过,我确实忘记了,在阅读“动态”属性时,没有必要引用ext
部分,因此您可以在场景中使用project[“module.status”]
。但是,如果要检查属性是否存在,则必须执行类似于project.ext.has(“module.status”)
的操作,如果要在脚本中设置动态属性,则必须执行类似于project.ext[“module.status”]=“snapshot”
或project.ext.newProp=“newValue”
的操作。
module.status: snapshot