scala - SBT 取决于特定的快照版本

标签 scala maven sbt

我有多个快照版本的人工制品,例如 artifact-0.1-20120831.103456-5

我的项目取决于特定的快照版本。
如果我告诉 SBT 下载 0.1-20120831.103456-5 版本而不是 0.1-SNAPSHOT 更新任务失败。

// build.sbt
libraryDependencies ++= Seq(
"com.example" % "smith" % "0.1-20120906.110133-36")
// sbt update
[warn] ==== My Repo snapshots: tried
[warn]   http://repo.localhost/snapshots/com/example/smith/0.1-20120906.110133-36/commons-0.1-20120906.110133-36.pom

如何在 http://repo.localhost/snapshots/com/example/smith/0.1-SNAPSHOT 目录中制作 SBT 搜索 Artifact 但使用唯一的快照版本?

最佳答案

添加 除了独特的版本插件,sbt 还有 aether-deploy 插件(见下文)。

unique version plugin 可以让您按照自己的意愿解决 Artifact 。从页面引用:

How to point at it

"0.1.0" or "0.1.0-20120602-073010" you can always use the static version number.
"0.1.0-+" selects the latest 0.1.0 snapshot.
"latest.integration" selects the latest revision regardless of its status.
"latest.milestone" selects the latest revision with either Milestone or Release status.
"latest.release" selects the latest with the Release status.


但您也必须使用此插件发布,因为 Artifact 以不同的方式发布:在您的示例中, Artifact 不会存储在 0.1-SNAPSHOT 目录下,而是存储在 0.1-20120831.103456-5 下

添加
还有使用 aether-deploy pluginAether(Aether 提供了一种与 Maven 存储库交互的标准方式)。问题是这个插件目前仅适用于部署(正如插件的名称所暗示的那样)。也许作者计划扩展它,以便它也适用于解析(对我来说听起来像是一个有用的功能)。如果您无法使用唯一版本插件发布(例如,如果快照不归您所有),那么您可以在 sbt forum 处询问。

因此,我无法提供一个与 maven 完全一样适用于您的用例的解决方案,但希望它为您和其他人提供一些有用的信息。

关于scala - SBT 取决于特定的快照版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213696/

相关文章:

scala - sbt如何选择要使用的Scala版本?

java - Scala:将 org.w3c.dom.Document 转换为 scala.xml.NodeSeq

java - 当sonar :sonar plugin runs时,Maven编译失败无法使用@Nonnull注释访问Enum

java - Java中如何从工作目录返回上一个目录?

mysql - 我的代码中的 SlickConfig 和 Guice 配置错误

scala - sbt 程序集合并问题 [去重 : different file contents found in the following]

mongodb - Scala 中的 Monad 转换器用于理解处理选项并收集错误消息

list - 如何在函数式编程中对状态变化进行建模

java - Maven shade插件不排除manifest签名文件

java - Play Framework : DB Connection Pool Shut Down