【问题标题】:Maven API search doesn't retrieve Google dependciesMaven API 搜索不检索 Google 依赖项
【发布时间】:2021-12-25 13:31:25
【问题描述】:

当我使用 Maven API 搜索功能时,它可以很好地处理 Central repo 中的依赖项(例如改造),但是,它不会从 Google repo 中检索依赖项(例如 play-services-plus)。尽管它们都可以在网络搜索 https://mvnrepository.com 中找到。

改造
  • 网络搜索结果:
    https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit/2.8.2

  • API 网址:
    API Link

  • API 结果:
    {"responseHeader":{"status":0,"QTime":0,"params":{"q":"g:\"com.squareup.retrofit2\" AND a:\"retrofit\" AND v:\"2.8.2\"","core":"","indent":"off","fl":"id,g,a,v,p,ec,timestamp,tags","start":"","sort":"score desc,timestamp desc,g asc,a asc,v desc","rows":"20","wt":"json","version":"2.2"}},"response":{"numFound":1,"start":0,"docs":[{"id":"com.squareup.retrofit2:retrofit:2.8.2","g":"com.squareup.retrofit2","a":"retrofit","v":"2.8.2","p":"jar","timestamp":1589829834000,"ec":["-sources.jar","-javadoc.jar",".jar",".pom"],"tags":["safe","client","android","http","java","type"]}]}}

Play Services Plus

如何在 Central repo 之外检索依赖项,我需要以编程方式进行此操作,例如API?

【问题讨论】:

  • search.maven.org 仅适用于 Maven Central。 mvnrepository.com 是一个独立的服务,它的创建者选择索引更多的 Maven 存储库,而不仅仅是 Maven Central。
  • 感谢@CommonsWare 提供的信息。他们是search.maven.org 的替代品吗?谷歌?
  • 对不起,我从来没有找过。
  • @Abd,下面更新了关于能够以编程方式搜索“Google 的 Maven 存储库”的答案
  • @djmonki,请查看我对您的回答的评论

标签: java android maven sonatype


【解决方案1】:

您需要添加 Google maven 存储库,更新您的 settings.xml 文件以将其包含为:

        <repository>
            <id>google</id>
            <url>https://maven.google.com/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

或您的 build.gradle 文件:

repositories {
    google()
}

mvnrepository.com 详细说明了依赖项可用的位置,如果您重新访问该 url,它会在“编译依赖项”部分上方详细说明

要以编程方式搜索“Google 的 Maven 存储库”,您可以通过 https://maven.google.com/group_path/group-index.xml 在 group-index.xml 中搜索您正在寻找的工件

所以在你的情况下你会搜索:

https://maven.google.com/com/google/android/gms/group-index.xml

要获取所选工件/版本的发布数据(pom 或 aar),您可以使用以下语法执行 GET:https://maven.google.com/group_path/library/version/library-version.ext(其中 ext 是 pom 或 aar)

所以在你的情况下,你会为​​:

https://maven.google.com/com/google/android/gms/play-services-plus/16.0.0/play-services-plus-16.0.0.pom

or

https://maven.google.com/com/google/android/gms/play-services-plus/16.0.0/play-services-plus-16.0.0.aar

【讨论】:

  • 感谢@djmonki,当我访问https://maven.google.com/com/google/android/gms/group-index.xml 时,我得到了每个库的版本。有没有办法获取每个版本的发布数据?例如在 Maven API 搜索中
  • @Abd,上面的更新答案,我认为你需要的
猜你喜欢
  • 2016-09-20
  • 2016-10-19
  • 2013-01-15
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 2016-12-19
相关资源
最近更新 更多