使用gradle将包含所有依赖项的jar复制到公共目录中

时间:2014-07-28 18:32:50

标签: java gradle build-process

我有一个多模块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放入公共目录?

0 个答案:

没有答案