0

我有以下构建结构:

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 中定义传递依赖项(重复)

4

1 回答 1

0

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

configurations{
    compile ":someDependentJar:1.0"
}

干杯,勒内

于 2012-10-25T21:27:14.673 回答