通常,我只是简单地定义项目依赖:
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工件以及与之关联的传递依赖项?我可以添加两种依赖项,但我觉得必须有一种方法可以在一个依赖项定义中进行。
答案 0 :(得分:1)
archives
配置包含要上载的工件,但它不包含任何依赖项。试试这个:
dependencies {
runtime ...
}
artifacts {
runtime zipDistribution // assuming this is a `Zip` task
}
dependencies {
compile project(':someProject')
}
而不是Java插件的runtime
配置,前一个脚本还可以将依赖项和工件添加到自定义配置中,然后必须将其反映在项目依赖项中(project(path: ..., configuration: ...)
)。