Gradle:子模块中抛出的类错误没有此类属性?

jav*_*999 5 java dependencies properties gradle

我正在尝试使用此答案dependencies中描述的技术在我的 gradle 项目中声明。

但是,当我这样做时,我收到此错误:

No such property: libraries for class
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

在顶层build.gradle中声明为属性的依赖项如下:

ext.libraries = [


junit: 'junit:junit:4.10'

]
Run Code Online (Sandbox Code Playgroud)

尝试检索模块级别 build.gradle中的依赖关系(其中抛出错误):

testCompile([
              libraries.junit
])
Run Code Online (Sandbox Code Playgroud)

抛出错误:

No such property: libraries for class: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler
Run Code Online (Sandbox Code Playgroud)

RaG*_*aGe 3

  1. 在您的顶层中settings.gradle,包括您的子项目:

    include 'subproject'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在您的顶层build.gradle定义您的 ext 属性:

    ext.libraries = [junit: 'junit:junit:4.10']
    
    Run Code Online (Sandbox Code Playgroud)

如果您只使用 1 个值,它不一定是地图,但我坚持使用您的格式。

  1. 要在您的中使用它subproject build.gradle

    dependencies{
      testCompile libraries.junit 
    }
    
    Run Code Online (Sandbox Code Playgroud)