我有一个多模块gradle构建设置。目录结构:
api/
build.gradle
common/
build.gradle
master/
settings.gradle
build.gradle
settings.gradle:
includeFlat "api", "common"
api build.gradle:
dependencies {
compile project(':common')
}
common build.gradle:
dependencies {
// all common dependencies here
}
master build.gradle
subprojects {
apply plugin: 'java'
task copyLibraries(type: Copy) {
into "../lib/"
from configurations.compile
}
jar {
destinationDir = new File("../lib/")
}
}
我运行'gradle clean build copyLibraries'。 common.jar是0kb。 api.jar被正确复制并包含正确的代码,但有些常见的是完全空的。所有的库罐都包含正确。
上面的示例是我们实际代码库的一小部分。我注意到列出的任何项目依赖项都被复制为空。因此,我们所有的叶子项目(不是任何其他项目的依赖项)都会被正确复制,其余部分则没有。
是否有我遗漏的东西,还是有另一种更好的方法可以使用gradle将所有依赖项和jar放入公共目录?