Gradle在另一个子项目中使用的子项目的传递依赖项

时间:2012-10-25 18:31:49

标签: scala gradle

我有以下构建结构:

rootProject
    |--> subProjectA
        |--> dependencies(someDependantJar-1.0.jar)
    |
    |--> subProjectB
        |--> dependencies(subProjectA)

subProjectB 中,我对Scala有以下声明,因为我的Scala依赖于来自 subProjectA 的外部JAR,并且它需要先编译,因为我的Java编译依赖于我的scala代码(不是相反):

apply plugin: 'scala'

compileScala.taskDependencies.values = compileScala.taskDependencies.values - 'compileJava'
compileJava.dependsOn compileScala

sourceSets {
    main {
        scala {
            srcDir 'src/main/java'
        }
    }
}

当我跑步时:

subProjectB:compileScala

我的 subProjectB 的编译问题没有在 subProjectA 的someDependantJar-1.0.jar中找到类。

当我跑步时:

println '___ dependencies ________________________________________________'
configurations.compile.dependencies.each { dep -> println dep.name }
println '__________________________________________________________________'

我得到以下依赖项列表:

    ___ dependencies ________________________________________________
    commons-lang
    [omit for brevity]
    subProjectA
    __________________________________________________________________

所以我没有看到someDependantJar-1.0.jar并且希望有人可以解释这个问题,所以我不必在subProjectA和subProjectB中定义传递依赖(重复)

1 个答案:

答案 0 :(得分:0)

您没有在subProjectB中定义编译依赖项。 不确定我是否正确设置,我认为你需要将依赖项添加到someDependantJar?你尝试在projectA上的projectB中添加一个依赖项

configurations{
    compile ":someDependentJar:1.0"
}

欢呼声, 勒