私は次のビルド構造を持っています:
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で推移的な依存関係を定義する必要はありません(重複)