【问题标题】:Gradle dependency not working on same version of buildGradle 依赖项不适用于相同版本的构建
【发布时间】:2020-12-06 13:12:06
【问题描述】:

在我们公司,我们使用 Artifactory 来管理 Gradle 的工件和依赖项。 我们有使用 Gradle 6.0.1 构建的 library,此外,还有一个使用 Gradle 6.0.1 构建的 micro-service 使用此库作为依赖项. 我验证了这个库存在于声明的仓库中。

当我们尝试构建项目时,我们收到一个错误,即声明的存储库中不存在此库,我们应该声明正确的库。 奇怪的是,如果我们将 微服务 降级到 Gradle 版本 5.6.2,库确实可以下载并运行。
我们还使用其他较旧的微服务对其进行了测试,这些微服务基于使用 Gradle 版本 4.10.3 构建的模板项目,并且它也在其中工作。

可能是什么问题?

【问题讨论】:

  • Gradle 6.0 开始使用 POM 文件的引用发布自己的模块元数据。也许 .Module 文件丢失了,但引用仍然存在?
  • 是的,POM 文件丢失。我将在答案中发布解决方法。

标签: java gradle dependencies dependency-management


【解决方案1】:

我在问题中提到的库没有随它一起发布的 POM 文件。

所以要么我需要在生成 POM 时再次发布它(因为库本身是使用 Gradle 而不是 Maven 构建的 - 有一种方法可以使用 Gradle 生成 POM)

或:

我会将以下代码添加到 build.gradle 文件中,以便 Gradle 将下载工件,即使它没有 POM 文件。

repositories {
maven {
    url uri('lib') 
    metadataSources {
        artifact()
    }
}

}

【讨论】:

    猜你喜欢
    • 2019-12-23
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多