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

标签 gradle

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

dependencies {
    compile project(':someProject')
}

这对于Java项目效果很好。但是,我有一个产生zip Artifact 的项目:
artifacts {
    archives file: zipDistribution.archivePath, type: 'zip', builtBy: zipDistribution
}

而且,当我执行上面的依赖项定义时,在编译配置中的依赖项进行迭代时,没有得到zip Artifact 。有jar文件,但没有zip文件。但是,这将获得zip文件:
dependencies {
    compile project(path: ':someProject', configuration: 'archives')
}

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

如何获得项目的zip Artifact 以及与其相关的传递依赖项?我可以添加两种依赖关系,但是我觉得必须在一种依赖关系定义中做到这一点。

最佳答案

archives配置包含要上载的 Artifact ,但不包含任何依赖项。尝试以下方法:

dependencies {
    runtime ...
}

artifacts {
    runtime zipDistribution // assuming this is a `Zip` task
}
dependencies {
    compile project(':someProject')
}

代替Java插件的runtime配置,前一个脚本还可以向自定义配置中添加依赖项和 Artifact ,然后必须将其反射(reflect)在项目依赖项(project(path: ..., configuration: ...))中。

关于gradle - 依赖项具有zip工件时的传递项目依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21945988/

相关文章:

java - 用于测试目的的 Maven 系统范围

android-studio - 同时构建两个变体

java - Spring Boot异常: java. lang.NoSuchMethodError : StandardJarScanner. setJarScanFilter(Lorg/apache/tomcat/JarScanFilter;)V

java - 在 android studio 上创建我的第一个 HelloWorld 应用程序时出现问题

Android Studio 1.1 Gradle 2.2.1 Gradle 版本 2.1 要求当前版本为 2.2.1

android - 需要阻止 Android 在失败的 gradle 任务上运行

github - 使用 gradle git 插件为私有(private)存储库创建/推送标签

java - 我无法导入 gradle 项目 Eclipse。 "Finish"按钮什么都不做

android - Gradle 编译选项可以自动影响多模块吗?(dexOptions,aaptOptions,lintOptions)

gradle - 所有子项目均具有已应用compile project()依赖项的Gradle多项目构建