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')
}