如何不失败使用Gradle构建无法解析的依赖 - Android

时间:2015-01-27 13:38:45

标签: java android gradle android-library

我正在使用AS和Gradle为Android构建一个mutli-module库。每个模块独立发布到Artifactory仓库,但作为完整版本号同步,每个模块具有相同的版本号(例如,完整库版本为1.2.1,然后每个模块重新发布为1.2.1,以使该版本保持同步)。

问题是我正在尝试与Gradle一起自动化所有这些库的发布版本和发布,但每个模块都依赖于一个保存共享逻辑的“核心”模块。当我尝试使用核心模块作为提供的依赖项创建这些gradle构建任务时会出现问题,例如:

provided 'xyz.abc.mylib-core:' + version

版本是共享版本。我做了一个gradle任务,执行每个库的清理,发布构建,测试和发布的每个步骤,如下所示:

task artifactoryPublishMyLibCore(dependsOn: [':mylib-core:clean', ':mylib-core:test', ':mylib-core:jacocoTestReport', ':mylib-core:sonarRunner', ':mylib-core:assembleRelease', ':mylib-core:artifactoryPublish']) task artifactoryPublishMyLibModule1(dependsOn: ['artifactoryPublishMyLibCore', ':mylib-module1:clean', ':mylib-module1:test', ':mylib-module1:jacocoTestReport', ':mylib-module1:sonarRunner', ':mylib-module1:assembleRelease', ':mylib-module1:artifactoryPublish' ])

现在尝试同步gradle时会出现问题

Error:Failed to resolve: xyz.abc.mylib-core:1.2.1

这是公平的,因为此时库尚未发布,但是当构建任务运行时,它将在需要时发布,并且我在每个库中使用core作为“提供的”运行时依赖项这些模块因此不需要(据我所知)编译每个模块。

我错过了一些明显的东西,如果没有,有办法:

  1. 当运行时依赖无法解决时,构建不会失败吗?
    1. 存根gradle无法解析同步的依赖关系,因为当模块上发生实际编译时它将可用吗?
    2. 任何和所有帮助表示赞赏。

      编辑:请注意,这不是调试的问题,因为我在执行debugCompile时将模块作为项目依赖项包含在内,只有在尝试执行必须为Artifactory正确引用依赖项的版本时才会这样做。

0 个答案:

没有答案