首页 > 解决方案 > Jitpack 存储库检索到错误版本的依赖项

问题描述

我尝试使用 JitPack 将分叉库添加到我的 Android 项目中。

allprojects {
    repositories {
        jcenter()
        google()
        maven { url 'https://jitpack.io'}
    }
}

同步后,我的库被正确添加,但问题是,除了 gradle 文件中指定的版本之外,最新版本的依赖项Picasso和被检索到。okio

implementation 'com.squareup.okio:okio:1.9.0'
implementation 'com.squareup.picasso:picasso:2.5.2'

还尝试使用includeGroup仅通过 JitPack 检索我自己的库,但它仍然以某种方式获取最新的软件包。

maven { url 'https://jitpack.io'
            content {
                includeGroupByRegex "com\\.github\\.myusername.*"
            }}

我认为这是一个 Maven 存储库问题,但并不真正了解发生了什么。欢迎任何建议!

标签: androidmavenandroid-gradle-pluginbuild.gradlejitpack

解决方案


Maven 依赖项被指定为

groupid:artifact:version

在大多数 Maven 存储库中,它们是从pom.xml库中获取的。

JitPack 在这里的工作方式不同:

  • groupid标识 git 托管服务和用户,例如com.gitlab.johndoe
  • artifact是该 git 托管服务上的项目名称,可在 URL 中找到
  • version是一个 git ref,即一个标签或分支名称,或者一个提交哈希

有一些方法可以使它们保持同步:

  • 对于与您对应的域groupid,配置一个 TXT 记录,其 URL 指向 git 主机上的相应用户或组织
  • 选择工件名称和项目名称相同
  • 用它在 .git 中的版本号标记 git 中的每个版本pom.xml

否则,您将不得不修改您的依赖项,以便 JitPack 能够找到它们。


推荐阅读