2014-04-21 59 views
0

settings.gradle設置一個子項目屬性的gradle:從另一個子項目

include ':projectA',':projectB' 

了projectA /的build.gradle

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" 
    } 
} 

項目B /的build.gradle

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 

它從未進入了「如果」的條款,我失去的東西,它甚至似乎獲得項目B,但hasProperties的ext.property testProperty1似乎沒有正確評估它。

回答

0

如果你把「轉」出從代碼

if(project(':projectB').ext.hasProperty("testProperty1")) 

,而是將其更改爲

if(project(':projectB').hasProperty("testProperty1")) 

然後轉到if語句,我不知道爲什麼有在轉readtime在我們可以在寫入時使用它時引發了一個問題。

相關問題