Gradle - 将第三方依赖项安装到本地常春藤存储库中

Posted

技术标签:

【中文标题】Gradle - 将第三方依赖项安装到本地常春藤存储库中【英文标题】:Gradle - Install thirdparty dependencies into local ivy repository 【发布时间】:2015-01-23 15:05:16 【问题描述】:

我有一个 gradle 项目,它有几个第三方依赖项。目前,我已将mavenCentral() 设置为存储库,以使我能够下载 JAR 并编译/运行等。

但是,我在文件系统上有一个本地常春藤风格的存储库,它被用作本地存储库(用于控制开发人员添加的 JAR,而不仅仅是让 mavenCentral 可用于所有 JAR 随时更新 - 就像工件一样,但没有应用程序服务器的东西)。

所以我让我的 PoC 与我的依赖项一起工作,我现在想将当前下载的第三方 JAR 集安装到我的本地 ivy 存储库中,这样我就可以删除对 mavenCentral 的依赖,并且所有构建都只使用本地 JAR - 是有什么简单的方法可以使用 gradle 在我的 ivy 存储库中安装这些缓存的 JAR?

我尝试使用如下的 copyDeps 任务,但这只是将 jar 复制到一个平面文件夹,但我想要常春藤文件夹结构

task copyDeps(type: Copy) 
  from configurations.runtime
  into '/tmp/lib'

这可能/容易吗? (不,假设我不能彻底改变设置/环境/过程:)

【问题讨论】:

【参考方案1】:

没有任何简单的方法可以使用 Gradle 将第三方依赖项及其所有元数据(模块描述符、校验和等)安装到 Maven/Ivy 存储库中。这是你必须自己编写脚本的东西。如果您从 Maven 转到 Ivy 存储库,您还必须将 pom.xml 转换为 ivy.xml 等。

PS:不要使用基于文件的 Ivy 存储库。 Artifactory 是一个很多更好的选择,而且它是免费且易于设置的。我认为它甚至可以将 pom.xml 转换为 ivy.xml(但首先要重新考虑是否真的需要 Ivy 存储库)。

【讨论】:

以上是关于Gradle - 将第三方依赖项安装到本地常春藤存储库中的主要内容,如果未能解决你的问题,请参考以下文章

Gradle:如何按模式包含常春藤工件?

具有gradle的本地模块依赖性

如何通过Gradle将所有依赖项复制到Maven存储库?

阿帕奇常春藤。未检索到传递依赖项

Gradle - 手动下载依赖、锁定版本和更新依赖

Gradle在本地Maven存储库中找不到现有的依赖项