【问题标题】:Getting all files of an artifact from maven repository从 maven 存储库获取工件的所有文件
【发布时间】:2017-05-02 06:24:56
【问题描述】:

我们的组织在一个孤立的网络中工作,所以当我们想要使用库时,我们需要从 maven-central 检索它们,然后上传到我们自己的 maven 存储库。

我正在寻找下载所需依赖项的所有文件的方法, 我已经使用 gradle gradle eclipseClasspath 来执行此操作,但它没有下载所有文件。例如 org.jacoco:jacoco:0.7.8 包含一个 zip 文件,当我查看 GRADLE_USER_HOME 时我找不到 zip。

build.gradle:

apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
    mavenCentral()
}
dependencies {
    compile 'org.jacoco:jacoco:0.7.8'
}

我该怎么办?

【问题讨论】:

  • 只需使用存储库管理器并让构建运行,您需要的所有工件都已下载到存储库管理器中。就这样?
  • @khmarbaise 这个存储库管理器是什么,你能给我举个例子吗?
  • 我不明白,我们需要下载工件,以便我们可以将它们上传到独立的存储库管理器(nexus),您是否建议我使用存储库管理器来下载工件或其他东西?

标签: maven gradle download dependencies maven-central


【解决方案1】:

您可以使用this gradle task 将依赖项下载到本地目录。

【讨论】:

  • 参见here 下载源代码和javadocs(如果有的话)以获取依赖项
  • 据我了解,withArtifacts(JvmLibrary, SourcesArtifact) 是下载源代码的方式,但我如何设法下载既不是源代码也不是 javadoc 的 zip,我尝试使用 withArtifacts(Component, Artifact) 但它没有似乎工作
【解决方案2】:

我想要一个简单的解决方案,现在我做了这个丑陋的解决方案https://github.com/idosu/scripts/blob/master/gradle/full-download-from-central.gradle

用法:

apply from: 'https://raw.githubusercontent.com/idosu/scripts/master/gradle/full-download-from-central.gradle'
dependencies {
    compile 'org.jacoco:jacoco:0.7.8'
}

Windows:set GRADLE_USER_HOME=deps & gradle --no-daemon -b eclipseClasspath createRepo

外壳:export GRADLE_USER_HOME=deps; gradle --no-daemon -b eclipseClasspath createRepo

结果将在build/repo


一个更好的方法是弄清楚eclipseClasspath如何解决所有父pom的依赖关系。因为使用project.configurations.compile.resolvedConfiguration.lenientConfiguration.allModuleDependencies 并不能解决问题

【讨论】:

    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2011-01-05
    • 2016-07-01
    • 2021-09-01
    • 2015-03-30
    • 2020-02-21
    相关资源
    最近更新 更多