我正在使用Gradle作为我项目的构建系统。 我想要的是如果给定属性设置为“true”,则任务A依赖于任务B.这是可行的,如果答案是肯定的,我该怎么做?
目前,我正在使用conventionMapping,但这似乎不起作用。我的代码如下所示:
MyTask.conventionMapping.propertyName = { MyPluginConvention.propertyName }
if (MyTask.propertyName.equals("true")) {
MyTask.dependsOn ...
}
提前致谢, 马林
答案 0 :(得分:1)
您不必使用任务/约定类,而是必须使用实例。此外,您还必须推迟决定是否添加任务依赖项。例如:
def myTask = project.tasks.create("myTask", MyTask)
def otherTask = ...
def myConvention = new MyConvention()
...
myTask.conventionMapping.propertyName = { myConvention.propertyName }
// defer decision whether to depend on 'otherTask'
myTask.dependsOn { myTask.propertyName == "true" ? otherTask : [] }
如果范围内没有任务变量,您还可以通过project.myTask
或project.tasks["myTask"]
引用现有任务。
PS:会议对象已在很大程度上被extension objects取代。