Sbt将同时发布到Sonatype和Bintray

时间:2020-04-20 02:17:35

标签: scala sbt sonatype bintray

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

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

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

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并找到了有效的设置。

sbt-bintray支持JVM属性标志sbt.sbtbintray,当它设置为false时,sbt-bintray不会覆盖publishTo设置(以及其他一些设置)。因此,要同时发布两种声纳类型,只需将sbt发布运行一次,并将标志设置为true,然后将标志设置为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