无法安装已发布的 Java 库

Cannot install a published Java library

我已将 java 库发布到 https://bintray.com/tylerlong/maven/ringcentral-pubnub

我尝试通过 gradle 使用它:

dependencies {
    ...

    compile 'com.ringcentral:ringcentral-pubnub:1.0.0-beta10'
}

当我运行./gradlew build时,我得到以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find com.ringcentral:ringcentral-pubnub:1.0.0-beta10.
     Searched in the following locations:
       - https://jcenter.bintray.com/com/ringcentral/ringcentral-pubnub/1.0.0-beta10/ringcentral-pubnub-1.0.0-beta10.pom
       - https://jcenter.bintray.com/com/ringcentral/ringcentral-pubnub/1.0.0-beta10/ringcentral-pubnub-1.0.0-beta10.jar
     Required by:
         project :

这是 build.gradle 文件:https://github.com/ringcentral/ringcentral-pubnub-java/blob/master/build.gradle

我真的不知道为什么它不起作用。我这里有另一个图书馆,它工作起来很有魅力:https://bintray.com/tylerlong/maven/ringcentral。我以类似的方式发布了这两个库。为什么一个有效而另一个无效?

这里是重现问题的示例项目:https://github.com/tylerlong/ringcentral-pubnub-demo

在给定的Github示例中;您需要配置 Gradle 构建以使用您的自定义 (bintray) maven 存储库。使用当前设置,它仅在 jcenter 中查找,并且您的依赖项在该存储库中不可用(因此出现错误)。

确保您的构建包含:

repositories {
    jcenter()
    maven {
      url 'https://dl.bintray.com/tylerlong/maven'
    }
}

关于

Why one works while the other doesn't?

也许您以不同的方式发布了 "one" 和 "other";这样只有一个存在于正确的存储库中?或者,您的构建使用 mavenLocal 而您实际上在本地安装了一个 dep。不管怎样-仔细检查你的回购协议!

我做的一切都正确,但我忘记了最后一步:link 到 jcenter。

参考:https://medium.com/@anitaa_1990/6-easy-steps-to-upload-your-android-library-to-bintray-jcenter-59e6030c8890

在我将包提交到 jcenter 之后,我得到了以下回复:

Your request to include your package /tylerlong/maven/ringcentral-pubnub in Bintray's JCenter has been approved.

那么一切都很顺利!