【问题标题】:Bintray VCS TaggingBintray VCS 标记
【发布时间】:2016-02-25 20:11:15
【问题描述】:

所以我有一个 Bintray 存储库,但我很难从 gradle 上传到它。好吧,我的意思是版本管理没有按我想要的方式工作,目前对于我上传的每个 .jar,我必须在我的配置和依赖项中增加版本。我知道这不是应该的方式。我的问题是如何使用 Bintray 自动化/实现 VCS 标记。现在我的上传配置看起来像这样(使用 bintray 插件):

bintray {
user = "$bintrayUser"
key = "$bintrayKey"
publications = ['maven']
dryRun = false
publish = true
pkg {
    repo = "$targetBintrayRepo"
    name = "$targetBintrayPackage"
    desc = ''
    websiteUrl = "$programWebsiteUrl"
    issueTrackerUrl = "$programIssueUrl"
    vcsUrl = "$programVcsUrl"
    licenses = ["$programLicense"]
    labels = []
    publicDownloadNumbers = true

    version {
        name = "$programVersion"
        released = new java.util.Date()
        vcsTag = "$programVcsTag"
    }

}
}

我的变量是:

def programVersion = '0'
def programVcsTag = '0.0.0'
def programGroup = 'com.gmail.socraticphoenix'
def targetBintrayRepo = 'Main'
def targetBintrayPackage = 'java-api'
def programLicense = 'MIT'
def programWebsiteUrl = 'https://github.com/meguy26/PlasmaAPI'
def programIssueUrl = 'https://github.com/meguy26/PlasmaAPI/issues'
def programVcsUrl = 'https://github.com/meguy26/PlasmaAPI.git'

然而here 没有标签出现,并且再次运行发布(即使使用不同的 vcs 标签)会导致版本已存在错误。 (Could not upload to 'https://api.bintray.com/content/meguy26/Main/java-api/0/com/gmail/socraticphoenix/PlasmaAPI/0/PlasmaAPI-0.jar': HTTP/1.1 409 Conflict [message:Unable to upload files: An artifact with the path 'com/gmail/socraticphoenix/PlasmaAPI/0/PlasmaAPI-0.jar' already exists])

对不起,如果我很笨,但我不明白为什么它不起作用,我填写了所有适当的变量(我想)

【问题讨论】:

    标签: gradle publishing bintray


    【解决方案1】:

    Bintray 不支持每个版本的多个标签。版本是一个唯一的字符串。如果您想从具有不同标签的同一版本发布某些内容,请使用您的程序版本和标签组成一个 Bintray 版本字符串,例如"$programVersion-$programVcsTag"

    【讨论】:

    • 我不太清楚你的意思。我将把组合字符串放在哪里?此外,我想要的最终结果是能够将“更新”发布到将由 gradle 构建脚本(取决于工件)下载的版本,而无需更改版本号
    • 我建议的字符串应该转到version.name。对版本的“更新” - 这是一个非常糟糕的主意。一个版本下的二进制文件应该是不可变的(出于很多原因,其中之一——发布的二进制文件被构建工具缓存)。如果要推送更新,则必须制作新版本。
    • 不,我不希望覆盖版本下的二进制文件,但是例如,我有一个依赖于 API 的项目,并且该 API 始终在其 repo 中发布更新的二进制文件,相同的版本。所有的二进制文件都还在,但是如果我刷新它,gradle 会重新下载最新的。我想要做的是对我想要发布的内容具有相同的行为。
    • 不。 Bintray 不支持在同一版本下发布不同的工件,也不支持,因为这是错误的做法。对于不断变化的工件,您可以使用快照(或集成)版本,但它们是开发时工件,不属于分发平台。非常欢迎您使用 oss.jfrog.org - 免费的 Artifactory 快照帐户。
    • 哦…………我现在明白了……我正在使用的 API 目前处于快照阶段。我现在觉得很菜。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2020-03-17
    • 2015-08-03
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多