我有以下构建结构:
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 中定义传递依赖项(重复)