【问题标题】:How to include maven repository with id in gradle?如何在 gradle 中包含带有 id 的 maven 存储库?
【发布时间】:2022-01-07 20:55:30
【问题描述】:

我正在尝试在我的 kotlin gradle 项目中使用 SimpleNativeHooks。我使用的是 kotlin gradle dsl,但是 SimpleNativeHooks 无法找到和下载。我得到的错误是:


    :KJ:launch:test: Could not find org.repeats.simplenativehooks:simplenativehooks:0.0.1.
    Required by:
        project :KJ:launch
    
    Possible solution:
     - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

我目前用于回购的代码是:

dependencyResolutionManagement {
  repositories{
    maven {
      url = java.net.URI("https://raw.github.com/repeats/SimpleNativeHooks/maven-export/")
    }
  }
}

但在 github README 中,maven 示例还包括其他一些示例。我想知道我在 gradle 构建中出现错误的原因是否是因为我没有正确地将 maven 代码转换为 gradle,可能是因为我错过了其中一些字段(比如 repo id,我没有知道如何包含在 gradle 中)。

【问题讨论】:

    标签: java maven kotlin gradle gradle-kotlin-dsl


    【解决方案1】:

    这个 URL 不是一个公平的 maven 存储库(它返回 400: Invalid request after 301: Permanent redirect),所以你需要给 Gradle 一个提示,在哪里寻找工件元数据 - 在这种情况下,有 pom.xml在根目录中:

    maven {
        url = uri("https://raw.github.com/repeats/SimpleNativeHooks/maven-export/")
        metadataSources {
            mavenPom()
        }
    }
    

    【讨论】:

    • 你测试过这个吗?它对你有用吗?它仍然对我不起作用
    • 没关系,现在可以了。由于未知原因,它在声明我所有其他存储库的 settings.gradle 中不起作用,但它确实在常规构建脚本中起作用
    • 400,是因为 github(曾经)限制了目录访问,但它适用于文件:raw.githubusercontent.com/repeats/SimpleNativeHooks/…
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2019-10-09
    • 2011-12-02
    • 2015-10-22
    • 2015-04-24
    • 2018-05-23
    • 2023-03-09
    • 2022-01-17
    相关资源
    最近更新 更多