JitPack不会使用GitHub repo - 包含演示该问题的样本仓库

时间:2017-06-30 07:53:14

标签: android android-studio gradle jitpack

每当我尝试分叉Android库并通过JitPack使用它时,我会收到错误,放弃并选择其他方法来自定义和使用库。这次我想深入了解并创建了一个隔离问题的基本应用程序。你能下载下面的回购并告诉我我做错了吗?

此repo是一个非常基本的Android应用程序:https://github.com/gazialankus/JitpackNotWorking。我只是在Android Studio中创建了一个新的Android应用程序,并按照https://jitpack.io/中的说明添加https://github.com/ArthurHub/Android-Image-Cropper github repo作为依赖项。我在根build.gradle中添加了JitPack Maven存储库,并在应用程序build.gradle中添加了库依赖项,如下所示:

compile 'com.github.ArthurHub:android-image-cropper:2.4.5'

Gradle同步很好,但android-image-cropper-2.4.5没有出现在项目视图中的外部库下。因此,应用程序不会构建此错误:

Error:(6, 38) error: package com.theartofdev.edmodo.cropper does not exist

正如我在应用build.gradle的评论中所指出的,使用没有JitPack的库就可以了。

compile 'com.theartofdev.edmodo:android-image-cropper:2.4.5'

我想也许JitPack无法建立这个回购。但是,JitPack log for this repository表示“确定”。

Gradle和Java版本:在Android Studio菜单文件>项目结构> Project,Gradle版本为3.3,Android插件版本为2.3.3。在同一个对话框中,SDK Location选项卡显示正在使用C:\ Program Files \ Android \ Android Studio \ jre中嵌入的JDK。

> "C:\Program Files\Android\Android Studio\jre\bin\java.exe" -version 
openjdk version "1.8.0_112-release"
OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
OpenJDK 64-Bit Server VM (build 25.112-b06, mixed mode)

Android Studio中没有待处理的更新。

请您下载并构建这个可以隔离问题的回购并告诉我我做错了什么?同样,演示此问题的存储库位于:https://github.com/gazialankus/JitpackNotWorking

谢谢。

编辑:尝试用我的叉子试图让图书馆更加友好JitPack,仍然是同样的问题。请参阅回购中的提交。

已解决:有关详细信息,请参阅https://github.com/gazialankus/JitpackNotWorking/blob/master/README.md

1 个答案:

答案 0 :(得分:2)

我认为问题在于群组和版本。

build log中,您可以看到Gradle调用中包含-Pgroup=com.github.ArthurHub-Pversion=2.4.5。但是在日志中,您会看到Found artifact: com.theartofdev.edmodo:android-image-cropper:2.4.5-SNAPSHOT实际应该是Found artifact: com.github.ArthurHub:android-image-cropper:2.4.5

您还会在日志底部的文件列表中看到只生成POM,没有jar或aar。这也是为什么Gradle同步在AS中成功的原因,因为依赖关系pom被找到且有效,该依赖关系没有任何工件。

如果查看所引用项目的build.gradle,可以看到它们不使用groupversion来配置发布,因此不使用JitPack设置的内容因此无法找到。

只要JitPack没有变得更加智能化,该项目就不是JitPack兼容的,而不仅仅是设置一些项目变量,而是添加一些重新配置出版物或类似内容的初始化脚本。

也许您应该使用复合构建。使用复合构建,您将声明二进制依赖项,如com.theartofdev.edmodo:android-image-cropper:2.4.5,但随后通过项目的工作树替换此依赖项,并自动完成子构建以获取依赖项的工件。这是使用自定义构建版本替换依赖项的纯Gradle方法。