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

Gradle 当依赖项具有zip工件时的可传递项目依赖项,gradle,Gradle,通常,我只定义项目依赖项: dependencies { compile project(':someProject') } 这在java项目中非常有效。但是,我有一个生成zip工件的项目: artifacts { archives file: zipDistribution.archivePath, type: 'zip', builtBy: zipDistribution } 当我执行上面的依赖项定义时,当我在编译配置中迭代依赖项时,不会得到zip工件。有一个jar文件,

通常,我只定义项目依赖项:

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工件以及与之相关联的可传递依赖项?我可以添加两种类型的依赖项,但我觉得必须有一种方法可以在一个依赖项定义中实现。

存档配置包含要上载的工件,但不包含任何依赖项。请尝试以下方法:

dependencies {
    runtime ...
}

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

与Java插件的
运行时
配置不同,前一个脚本还可以将依赖项和工件添加到自定义配置中,这将必须反映在项目依赖项中(
项目(路径:…,配置:…)

dependencies {
    compile project(':someProject')
}