首页 > 解决方案 > Sbt 发布到 Sonatype 和 Bintray

问题描述

我有一个刚从 gradle 转换为 sbt 的 scala 库。默认情况下,它通过在发布时发布到 Sonatype 来工作。但是我也想将它发布到 Bintray。问题是 Bintray sbt 插件覆盖了原始发布到 Sonatype。

我知道我可以通过 Bintray 同步到 Sonatype 和 Maven 中央存储库。但是我仍然喜欢 Sonatype 在我真正可以将其发布到 Maven 中心之前处理验证和检查的方式。

如何从我的发布服务器发布到 Sonatype 和 Bintray(不依赖 Bintray 为我同步)?

标签: scalasbtsonatypebintray

解决方案


我遇到了同样的问题,并找到了一个可行的设置。

sbt-bintray 支持 JVM 属性标志sbt.sbtbintray,当它设置为 时false,sbt-bintray 不会覆盖该publishTo设置(以及其他一些)。因此,要发布到这两种 sonatype,只需运行 sbt publish 一次,并将标志设置为trueand once to false

但是,我也使用了 sbt-ci-release 插件,它也覆盖了publishTo设置(bintray 之后),但没有提供一个标志来禁用它。要解决此问题,请将 sbt-bintray 所做的复制到您自己的构建中:

publishTo := {
  val old = publishTo.value
  val p = (publishTo in bintray).value
  if (BintrayPlugin.isEnabledViaProp) p
  else old
}

另请参阅构建: https ://github.com/JetBrains/intellij-compiler-indices/tree/master/sbt-idea-compiler-indices


推荐阅读