2015-12-17 34 views
5

我正在嘗試使用this answer中描述的技術在我的Gradle項目中聲明dependenciesGradle:在子模塊中拋出類錯誤沒有這樣的屬性?

然而,當我這樣做,我得到這個錯誤:

No such property: libraries for class 

我怎樣才能解決這個問題?聲明爲在頂層的build.gradle性質

依存關係如下:

ext.libraries = [ 


junit: 'junit:junit:4.10' 

] 

試圖檢索模塊級的build.gradle(其中被拋出錯誤)依賴性:

testCompile([ 
       libraries.junit 
]) 

拋出的錯誤:

No such property: libraries for class: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 
+0

能不能請你:'project.libraries.junit'? – Opal

+0

使用這個有什麼區別?我試過,但我得到相同的錯誤? – java123999

+0

應該是相同的,但有時它可能有意義。你有一個在線演示,再現了這個問題? – Opal

回答

3
  1. 在您的頂級settings.gradle,包括您的子項目:

    include 'subproject' 
    
  2. 在您的頂級build.gradle定義擴展屬性:

    ext.libraries = [junit: 'junit:junit:4.10'] 
    

它不必做一張地圖,如果你只使用1個值,但我堅持使用你的格式。

  • 要使用這個在您的subproject build.gradle

    dependencies{ 
        testCompile libraries.junit 
    } 
    
  • +0

    好的,所以我不需要在任何地方「項目」? – java123999

    +0

    'project.ext.varname'是ext變量的完全限定的正確分辨率。只是'varname'是簡寫。 – RaGe

    +0

    爲您完成了這項工作? – RaGe

    相關問題