【问题标题】:Bintray, merge packages with common group idBintray,合并具有公共组ID的包
【发布时间】:2017-02-02 09:51:05
【问题描述】:

我在一个组 id 中有很多包。

我的主要组 id 是:com.github.kondaurovdev

我有子组: com.github.kondaurovdev.sn-ps com.github.kondaurovdev.akka_http ...

我不想在 bintray 中创建很多包,因为我必须等待批准才能将包链接到 jcenter。

所以我找到了一个“解决方案”。 Bintray UI 中有一个合并按钮,您可以选择所有具有相同 group id 的包,并且一个包有多个子包。您只能链接此包一次,您的包将可以通过 JCenter 存储库下载。太酷了!

但我不想每次都合并。我想将我的子包直接发布到父包中。这可能吗?

我正在使用 sbt-bintray 上传工件,但它总是创建新包并上传内容。

【问题讨论】:

标签: maven sbt bintray


【解决方案1】:

决定是否应将某些 artifact_id 合并到单个包中的经验法则是:

  1. 项目是单个项目的子模块,并且
  2. 项目一起发布

让我举几个例子来说明我的意思。我将使用众所周知且多样化的 Spring Framework 项目。

  1. spring-contextspring-beans 工件 ID 合并到同一个 Bintray 包中。它们是相关的(核心 Spring DI 项目的一部分)并且它们一起发布(例如 4.3.6.RELEASE)。它们是同一个 Bintray 项目的一部分 - spring.framework
  2. spring-batch-core 与 Spring DI 项目关系不大,因此尽管它们共享 group-id org.springframework,但它们在 Bintray 的不同包中。
  3. Spring Data 的不同子项目当然是相关的,但是它们有不同的发布版本和不同的发布时间表。例如,Spring Data Commons 是 1.11.4 版,Spring Data JPA 是 1.9.4 版。所以,虽然这些项目是相关的,但它们不可能在同一个包中,因为如果它们共享同一个包,当 Data JPA 达到 1.11 时,版本已经是只读的,因为 Data Commons 1.11 是很久以前发布的。

我希望这是有道理的。

现在,谈谈您的实际问题。很抱歉,您必须等待很长时间才能收到包含请求。如果您觉得时间过长,请随时与我个人 (@jbaruch) 联系,我很乐意检查发生了什么。也就是说,包含请求是一次性程序每个包。您多久推出一次新软件包?

正如我所提到的,您很可能拥有应该合并到同一个包中的工件 ID(但请遵守规则,如上所述)。在这种情况下,您可以在“build.sbt”publishTo 设置中指定更广泛的包,如 this example

【讨论】:

  • 感谢 JBaruch 的详细解释,我从没想过有相同 id 但发布时间表不同的包 :)
猜你喜欢
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
相关资源
最近更新 更多