0

私は次のビルド構造を持っています:

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

subProjectBでは、 ScalaがsubProjectAの外部JARに依存しているため、Scalaに対して次の宣言があります。また、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 に答える