1

我正在尝试发布为 Scala v2.11 和 v2.12 交叉构建的https://github.com/guardian/marley版本。所有代码依赖项都得到满足,并且都+test+publishLocalSigned预期工作,后者肯定会为 Scala v2.11 和 v2.12 生成工件。不幸sbt release的是,使用sbt-sonatype插件执行只会上传Scala v2.12 的工件 - 它不会尝试将 Scala v2.11 的工件上传到 sonatype 临时存储库。

以下是build.sbt文件中的相关 sbt 设置(GitHub 上的 repo 中的完整版本):

scalaVersion in ThisBuild := "2.12.4"

crossScalaVersions in ThisBuild := Seq(scalaVersion.value, "2.11.12")

import ReleaseTransformations._

releaseCrossBuild := true // true if you cross-build the project for multiple Scala versions
releaseProcess := Seq[ReleaseStep](
  checkSnapshotDependencies,
  inquireVersions,
  runClean,
  runTest,
  setReleaseVersion,
  commitReleaseVersion,
  tagRelease,
  releaseStepCommand("publishSigned"),
  setNextVersion,
  commitNextVersion,
  releaseStepCommand("sonatypeReleaseAll"),
  pushChanges
)

sbt release这是命令输出的完整副本: https ://gist.github.com/rtyley/5f9f832fabe2bdcfc2d561a36c29f993 - 即使[info] Setting scala version to 2.11.12发生(两次),您也可以看到 - 仅上传了 Scala 2.12 工件。

4

1 回答 1

0

我认为问题出releaseStepCommand("publishSigned")在您的发布过程中。

我认为要么:

  • 它必须是releaseStepCommand("+publishSigned");或者
  • 您需要改为设置releasePublishArtifactsAction := PgpKeys.publishSigned.value,然后切换回publishArtifacts(而不是使用releaseStepCommand

自述文件记录了这种releasePublishArtifactsAction方式。

于 2018-02-09T12:23:28.120 回答