我最近将我的github项目上传到bintray并成功将其与JCenter存储库同步。 我用过这个教程:
http://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
所以我的gradle依赖是:
dependencies {
compile 'com.github.danylo2006:hashtag-helper:1.1.0'
}
为了上传它,我修改了我的build.gradle并添加了相关的脚本安静。教程中的所有内容。
... some code here
ext {
bintrayRepo = 'maven'
bintrayName = 'hashtag-helper'
publishedGroupId = 'com.github.danylo2006'
libraryName = 'HashTagHelper'
artifact = 'hashtag-helper'
libraryDescription = 'This is a library designed for highlighting hashtags ("#example") and catching click on them.'
siteUrl = 'https://github.com/danylo2006/HashTagHelper'
gitUrl = 'https://github.com/danylo2006/HashTagHelper.git'
libraryVersion = '1.1.0'
developerId = 'danylovolokh'
developerName = 'Danylo Volokh'
developerEmail = 'v.danylo@gmail.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
以下是棘手的部分:
我已将我的github昵称 danylo2006 更改为 danylovolokh ,现在我想更改gradle依赖项:
dependencies {
compile 'com.github.danylo2006:hashtag-helper:1.1.0'
}
更改为:
dependencies {
compile 'com.github.danylovolokh:hashtag-helper:1.1.0'
}
唯一相关的变化是:
publishedGroupId = 'com.github.danylo2006'
已更改为
publishedGroupId = 'com.github.danylovolokh'
我运行相关命令: gradlew安装 gradlew bintrayUpload
我得到了BUILD_SUCCESSFULL
但是如果我向任何其他gradle项目添加新的依赖项,我会收到错误“错误:(36,13)无法解决:com.github.danylovolokh:hashtag-helper:1.1.0”
答案 0 :(得分:4)
包含到JCenter是通过groupId的路径完成的。 JFrog还需要包含从包到JCenter的新路径。 请通过support@bintray.com与JFrog支持小组联系
答案 1 :(得分:3)
@JBaruch是对的。似乎通过电子邮件发送bintray是真正让这些事情发生变化的正确方法。但为了完整起见,我附上了从Bintray收到的回复。希望发布他们的回复将阻止他们被电子邮件轰炸......
对于上下文,我有一个包含java
的{{1}}存储库:
groupID:artifact
目前有使用此groupID的版本(1.0.0 / 1.0.1 / 1.0.2 / 1.0.3 / 1.0.4 /)。我让他们把这个改成
io.jeti.utils:serialize
事实上,我已经用这个缩短的groupID将版本(1.0.5 / 1.0.6)推送到了bintray。这是回应:
我们了解您的用例。在这种情况下,我们建议创建一个 新包并提交新的包含请求。请让我解释一下 让我们从你的java repo中获取'serialize'包。 目前,当只有一个与Jcenter同步时,它有2个路径前缀: io / jeti / utils / serialize / - >同步io / jeti /序列化 - >不存在 在jcenter中
重新链接新的groupId,将导致旧的/当前的groupId (io / jeti / utils)及其版本(1.0.0 / 1.0.1 / 1.0.2 / 1.0.3 / 1.0.4 /) 因为它依赖于旧的groupId而无法解析。这有可能 打破了与您的构建和脚本的当前集成。因此, 最好的方法是创建一个新的包(例如serialize2),提交 一个新的包含请求(包括新的groupId - io / jeti / serialize)我们将批准它并使其同步 JCenter。在这种情况下,您将获得所有人的完整分辨率 现有版本的软件包(以及1.0.5 / 1.0.6)。
请告诉我们如何继续。
答案 2 :(得分:0)
我痛苦的建议是创建一个新的Bintray包,并要求将其发布到新的groupId上。我试图移动一个现有的程序包,而往返于JFrog支持的48小时20条消息使我无法在原始位置或新位置发布原始程序包,也无法在新位置发布新程序包。
最后,我不得不注册一个新的域名来托管我的项目,因为Bintray有效地拒绝了我试图更改为的groupId的访问。