Gradle 渐变:从另一个子项目设置子项目属性
设置。渐变Gradle 渐变:从另一个子项目设置子项目属性,gradle,Gradle,设置。渐变 include ':projectA',':projectB' task task1() { doFirst { println 'setting project.ext.testProperty1' project(':projectB').ext.testProperty1 = 'MyProperty' } } task task2 (dependsOn: ['task1', ':projectB:task3']) {
include ':projectA',':projectB'
task task1() {
doFirst {
println 'setting project.ext.testProperty1'
project(':projectB').ext.testProperty1 = 'MyProperty'
}
}
task task2 (dependsOn: ['task1', ':projectB:task3']) {
doLast {
println "Executed project B Task3 from projectA task2"
}
}
task task3() {
doLast {
println "task3 from projectB"
println project(':projectB').ext.testProperty1
if(project(':projectB').ext.hasProperty("testProperty1")) {
ext.prop1 = project.property("testProperty1")
println "+++++++++If : Clause++++++++++++++++++++++++++++++++"
} else {
println "+++++++++Else :Clause++++++++++++++++++++++++++++++++"
}
}
}
projectA/build.gradle
include ':projectA',':projectB'
task task1() {
doFirst {
println 'setting project.ext.testProperty1'
project(':projectB').ext.testProperty1 = 'MyProperty'
}
}
task task2 (dependsOn: ['task1', ':projectB:task3']) {
doLast {
println "Executed project B Task3 from projectA task2"
}
}
task task3() {
doLast {
println "task3 from projectB"
println project(':projectB').ext.testProperty1
if(project(':projectB').ext.hasProperty("testProperty1")) {
ext.prop1 = project.property("testProperty1")
println "+++++++++If : Clause++++++++++++++++++++++++++++++++"
} else {
println "+++++++++Else :Clause++++++++++++++++++++++++++++++++"
}
}
}
projectB/build.gradle
include ':projectA',':projectB'
task task1() {
doFirst {
println 'setting project.ext.testProperty1'
project(':projectB').ext.testProperty1 = 'MyProperty'
}
}
task task2 (dependsOn: ['task1', ':projectB:task3']) {
doLast {
println "Executed project B Task3 from projectA task2"
}
}
task task3() {
doLast {
println "task3 from projectB"
println project(':projectB').ext.testProperty1
if(project(':projectB').ext.hasProperty("testProperty1")) {
ext.prop1 = project.property("testProperty1")
println "+++++++++If : Clause++++++++++++++++++++++++++++++++"
} else {
println "+++++++++Else :Clause++++++++++++++++++++++++++++++++"
}
}
}
现在,当我调用gradle task2时,我得到的输出总是
$ ../gradlew task2
:projectA:task1
setting project.ext.testProperty1
:projectB:task3
task3 from projectB
MyProperty
+++++++++Else :Clause++++++++++++++++++++++++++++++++
:projectA:task2
Executed project B Task3 from projectA task2
它从未进入“If”子句,我遗漏了什么,它甚至似乎在ProjectB中获得ext.property testProperty1,但hasProperties似乎没有正确计算它 如果从代码中去掉“ext”
if(project(':projectB').ext.hasProperty("testProperty1"))
改成
if(project(':projectB').hasProperty("testProperty1"))
然后是if子句,我不知道为什么在readtime使用ext会引起问题,而我们可以在writetime使用它