scala - Sbt 发布到 Sonatype 和 Bintray
问题描述
我有一个刚从 gradle 转换为 sbt 的 scala 库。默认情况下,它通过在发布时发布到 Sonatype 来工作。但是我也想将它发布到 Bintray。问题是 Bintray sbt 插件覆盖了原始发布到 Sonatype。
我知道我可以通过 Bintray 同步到 Sonatype 和 Maven 中央存储库。但是我仍然喜欢 Sonatype 在我真正可以将其发布到 Maven 中心之前处理验证和检查的方式。
如何从我的发布服务器发布到 Sonatype 和 Bintray(不依赖 Bintray 为我同步)?
解决方案
我遇到了同样的问题,并找到了一个可行的设置。
sbt-bintray 支持 JVM 属性标志sbt.sbtbintray
,当它设置为 时false
,sbt-bintray 不会覆盖该publishTo
设置(以及其他一些)。因此,要发布到这两种 sonatype,只需运行 sbt publish 一次,并将标志设置为true
and 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
推荐阅读
- windows - Ansible SUBST 驱动机器范围
- java - IllegalArgumentException:无法解析值“${login.endpoint}”中的占位符“login.endpoint”
- angular - ERROR 错误:无法实例化循环依赖!身份验证服务
- cookies - Jmeter 中的 cookie 处理问题
- html - 为什么我的边界溢出到我的另一个 div 中?
- debugging - 什么是“并发分配给非网络”
不允许” Verilog 模拟错误? - c++ - C ++ 17 'new' 运算符仍然可以泄漏内存吗?
- javascript - Web Audio API:使用复杂节点图播放多个音符的最佳实践是什么?
- c++ - (VC 2019) C++ return 语句在发布配置中被忽略,在调试中工作正常
- sql - 比较 2 个文本字段 SQL - 错误 - ORA-22835:缓冲区太小,无法进行 CLOB 到 CHAR 或 BLOB 到 RAW 转换