依赖项具有zip工件时的传递项目依赖项

时间:2014-02-21 21:56:38

标签: gradle

通常,我只是简单地定义项目依赖:

dependencies {
    compile project(':someProject')
}

这适用于java项目。但是,我有一个产生zip工件的项目:

artifacts {
    archives file: zipDistribution.archivePath, type: 'zip', builtBy: zipDistribution
}

当我执行上面的依赖项定义时,当我在编译配置中迭代依赖项时,我没有得到zip工件。有一个jar文件,但没有zip。但是,这会获取zip文件:

dependencies {
    compile project(path: ':someProject', configuration: 'archives')
}

大!有用!除了“someProject”有自己的依赖关系......而且我们再也没有得到那些可传递的了。将transitive: true添加到项目依赖项中也没有帮助。

如何获取项目的zip工件以及与之关联的传递依赖项?我可以添加两种依赖项,但我觉得必须有一种方法可以在一个依赖项定义中进行。

1 个答案:

答案 0 :(得分:1)

archives配置包含要上载的工件,但它不包含任何依赖项。试试这个:

dependencies {
    runtime ...
}

artifacts {
    runtime zipDistribution // assuming this is a `Zip` task
}

dependencies {
    compile project(':someProject')
}

而不是Java插件的runtime配置,前一个脚本还可以将依赖项和工件添加到自定义配置中,然后必须将其反映在项目依赖项中(project(path: ..., configuration: ...))。