如何使用sbt-release发布快照构件?

5
我成功地在我的CI流程中设置了sbt-release,以发布一个发布版本(例如v0.0.1)。从那时起,我可以添加本地更改,构建版本随着我的提交而变为快照版本(v0.0.1-1-SHA1-SNAPSHOT)。在这个阶段,如何发布一个快照版本而不发布正式版?我的意思是,我可能不想在这个阶段发布v.0.0.2,我只想发布一个快照版本。此外,我希望以这样一种方式来做到这一点,即版本格式得到保留,我不需要手动输入版本号。

我的基本设置遵循http://blog.byjean.eu/2015/07/10/painless-release-with-sbt.html。 - Andrea T. Bonanno
1个回答

6

最终,我通过使用单独的 "sbt release" 命令来发布release artifact,并使用 "sbt publish" 命令发布snapshot artifact 来满足我的需求。我还需要在 build.sbt 文件中设置发布位置,如下所示。

publishTo <<= version { v: String =>
 val nexus: String = "https://xxxxxxxx/repository/"
 if (v.trim.endsWith("SNAPSHOT"))
   Some("Snapshots" at nexus + "snapshots")
 else
   Some("Releases" at nexus + "releases")
}

以下是我评论中提到的“sbt-release”部分的示例发布流程。

下面是一个应用程序的示例发布流程,如果要将其转换为库,则应取消注释publishArtifacts并注释下一行,该行用于从Universal命名空间发布包。

releaseProcess := Seq( 检查快照依赖项, 询问版本, 设置发布版本, 运行测试, 标记发布, // publishArtifacts, ReleaseStep(releaseStepTask(publish in Universal)), 推送更改 )


你能详细说明一下你是如何添加 'sbt publish' 任务的吗? - Tushar Sudake
根据我发布的链接中“sbt-release”部分所述,我已将发布步骤添加到发布流程中。请参见我上面更新的答案。 - Andrea T. Bonanno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接