java - Gradle - 将第三方依赖项安装到本地 Ivy 存储库中

标签 java groovy jar gradle ivy

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

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

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

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

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

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

最佳答案

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

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

关于java - Gradle - 将第三方依赖项安装到本地 Ivy 存储库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27129629/

相关文章:

java - Yahoo Finance.get 返回的股票为空

java - 将值从 JSP 传递到 JSF 页面支持 Bean

java - 如何在 Grails 中的 Quartz 作业开始时运行一次函数,并在调用之间保留变量值?

Android Gradle 从 strings.xml 读取应用程序名称

java - 将Java编译为JAR文件后播放WAV文件

javascript - 从 JavaScript (Rhino/Nashorn) 中添加和删除 Jar 文件和类

java - 同一 jar 文件中的两个相同的类

java - 当 findElement 方法无法识别可用属性时,如何定位 WebElement?

java - 在java中使用其他类的变量

groovy - Groovy 中如何确定调用对象的数据类型?