【问题标题】:How to set latest version in Bintray Jcenter如何在 Bintray Jcenter 中设置最新版本
【发布时间】:2018-10-04 16:59:29
【问题描述】:

我已在 bintray jcenter 上成功发布了我的 android 库。我有一个存储库,其中包含一个包含两个版本 0.0.1 和 0.0.2 的包。我想将 0.0.2 作为最新的默认版本。

每当我的图书馆用户使用以下脚本下载我的图书馆时,我希望它始终从最新版本下载:

compile 'com.userexperior:userexperior-android:+'

我尝试了两个示例应用程序,上面的脚本选择了旧版本 0.0.1,尽管我可以通过在 gradle 脚本中手动编写最新版本 0.0.2 而不是通过“+”号来使用它在 gradle 脚本中:

compile 'com.userexperior:userexperior-android:0.0.2'

bintray 支持团队或社区的任何人都可以指导我实现它吗?

【问题讨论】:

  • 补充一下,我看到你发布了0.1.4,jcenter 中的.pom 文件显示它是最新的,所以com.userexperior:userexperior-android:+ 下载0.1.4
  • @Royg 有时它并不总是选择最新版本!我今天添加了 0.2.5 版本,它是手动工作的,但是 + 号不会自动选择它,它会选择上一个版本,即 0.2.4
  • 为我工作!我已经能够下载版本 0.2.5(可以在缓存中看到版本)。 maven-metadata.xml 包含正确的当前版本。
  • 差不多 2 小时前,我发布了一个新版本 0.2.9,但是带有 + 符号的 gradle 脚本选择了较早的版本,即 0.2.8。我不知道 bintray 需要多少时间才能将新版本设置为最新版本。
  • 请阅读我在下面的回答中关于声明动态版本的评论

标签: android android-library bintray jcenter


【解决方案1】:

如果您查看项目的 maven-metadata 文件:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>com.userexperior</groupId>
  <artifactId>userexperior-android</artifactId>
  <version>0.0.2</version>
  <versioning>
    <latest>0.0.2</latest>
    <release>0.0.2</release>
    <versions>
      <version>0.0.1</version>
      <version>0.0.2</version>
    </versions>
    <lastUpdated>20180423152323</lastUpdated>
  </versioning>
</metadata>

您可以看到最新标签将其指向版本 0.0.2: 0.0.2

您能否检查您是否使用正确的方法来解决最新版本?我不是 gradle 专家,但它看起来像是最新的 ANT 方法......

【讨论】:

  • 有时 bintray-jcenter 不会选择最新发布的版本,它会选择之前的版本!我必须手动指定版本,然后它才能工作!
  • 我今天添加了 0.2.5 版本,它是手动工作的,但是 + 号不会自动选择它,它会选择上一个版本,即 0.2.4
  • 您看到的问题与gradle的Declaring a dynamic version有关,它在指南中指出,Gradle 24小时缓存动态版本的依赖项 ,请看这里:docs.gradle.org/current/userguide/…
猜你喜欢
  • 1970-01-01
  • 2017-12-27
  • 2017-04-26
  • 2021-04-10
  • 2017-05-10
  • 1970-01-01
  • 2017-11-06
  • 2020-12-04
  • 1970-01-01
相关资源
最近更新 更多