gradle - Gradle解决多项目依赖项中的ext属性

标签 gradle build.gradle multi-project

我具有以下多项目结构(仅显示重要部分):

- project
    - build.gradle (file) 
    - settings.gradle (file)
    + module1 (dir)
    + module2 (dir)

build.gradle:
ext {
    groovyMajorVersion = 2.4
    groovyMinorVersion = 3
}
subprojects {
    dependencies {
        testCompile 'org.codehaus.groovy:groovy-all:${groovyMajorVersion}.${groovyMinorVersion}'
        testCompile 'org.spockframework:spock-core:1.0-groovy-${groovyMajorVersion}'
    }
}

settings.gradle:
include 'module1', 'module2'

当我从module1运行gradle dependencies时,出现以下错误:
testCompile - Compile classpath for source set 'test'.
+--- org.codehaus.groovy:groovy-all:${groovyMajorVersion}.${groovyMinorVersion} FAILED
\--- org.spockframework:spock-core:1.0-groovy-${groovyMajorVersion} FAILED

最佳答案

这是因为在依赖关系块中,您用撇号(')而不是反向逗号(")包装依赖关系,因此依赖关系内部的参数无法解析。要解决此问题,只需将引号替换为反逗号,即:

    testCompile "org.codehaus.groovy:groovy-all:${groovyMajorVersion}.${groovyMinorVersion}"
    testCompile "org.spockframework:spock-core:1.0-groovy-${groovyMajorVersion}"

关于gradle - Gradle解决多项目依赖项中的ext属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30348701/

相关文章:

java - 通过 Gradle 的 Spring Boot 自定义启动器

kotlin - 无法解析: androidx. compose.ui:ui-tooling和其他模块

android - 如何在 Fedora 上将 gradle 从 4.4.1 升级到最新版本?

Android Studio 中库的 Java 1.7 兼容性

eclipse - 如何在STS eclipse中进行多项目Gradle构建?

gradle - 如何忽略dependsOn失败,因为某些子项目没有定义的任务

android - Dokka - 跳过为默认的 android 包生成 javadoc

android - 错误 :Server returned HTTP response code: 403 for URL: https://services. gradle.org/distributions/gradle-4.4-rc-3-all.zip

maven - Gradle 相当于 maven-versions-plugin

scala - sbt 在多项目构建中使用不同的 Scala 版本