我有一个项目,它由几个在设置中声明的模块组成。Gradle文件:
include ':core_icons'
include ':core'
core_icons
被核心模块用作版本依赖项:
compile 'com.company.core:icons:0.0.1-SNAPSHOT'
在Jenkins上,构建不会运行,因为Gradle正在寻找依赖项在本地maven缓存中,但找不到它:
* What went wrong:
A problem occurred configuring project ':core'.
> Could not resolve all dependencies for configuration ':core:_debugPublishCopy'.
> Could not find com.company.core:icons:0.0.1-SNAPSHOT.
似乎Gradle已经尝试找到每个依赖项,然后它启动。
我试图通过清除本地maven缓存中的依赖关系在我的本地机器上复制这一点,但随后我能够通过以下方式构建项目而没有任何问题:
gradlew core_icons:install
我检查了Gradle版本,两者都是相同的(2.14.1)
我试图在Jenkins上调用完全相同的构建,但它不工作,因为它找不到依赖项。
从设置中移除核心模块时。gradle构建在Jenkins上运行良好。
有人知道为什么这种情况只发生在詹金斯身上吗?
我找到了解决问题的方法,如下:
问题是我有一个依赖于core_icons,它只是在构建过程中被创建,像这样:
compile 'com.company.core:icons:0.0.1-SNAPSHOT'
由于这代表了一个应该在本地Maven仓库或MavenCentral中找到的依赖项,Gradle无法找到它。
就像一个普通的项目一样引用依赖项,像这样:
compile project(':core_icons')
之后,您还可以调用安装目标,将您的工件作为快照或发布版本发布到Maven仓库。