SBT取决于特定的快照版本 [英] SBT depend on specific snapshot version
问题描述
我的产品具有多个快照版本,例如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/中制作SBT搜索工件smith/0.1-SNAPSHOT 目录,但是使用唯一的快照版本?
添加除了唯一的版本插件外,sbt还具有以太部署插件(请参见下文).
有一个唯一版本插件,它可以让您根据需要解析工件.从页面引用:
如何指向它
"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.
但是您还必须使用此插件进行发布,因为工件以与版本有关的不同方式发布:在您的示例中,工件不会存储在0.1-SNAPSHOT目录下,而是存储在0.1-20120831.103456-5下. /p>
添加 还有一个 aether-deploy插件,它使用 sbt论坛.
因此,我无法提供一种与您的用例完全相同的解决方案,但希望它能为您和其他人提供一些有用的信息.
I have artifactory with multiple snapshots versions such as artifact-0.1-20120831.103456-5
.
My project depends on specific snapshot version.
If I tell SBT to download 0.1-20120831.103456-5
version instead of 0.1-SNAPSHOT
it fails on update task.
// 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
How to make SBT search artifacts in http://repo.localhost/snapshots/com/example/smith/0.1-SNAPSHOT directory but use unique snapshot version?
Addition Apart from the unique version plugin, sbt also has the aether-deploy plugin (see below).
There is the unique version plugin which lets you resolve your artifacts like you want. Quote from the page:
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.
But you also have to publish with this plugin, since the artifacts are published in a different manner regarding the version: In your example, the artifact won't be stored under 0.1-SNAPSHOT directory but under 0.1-20120831.103456-5
Addition There is also the aether-deploy plugin which uses Aether (Aether offers a standard way of interacting with Maven repositories). Problem is that this plugin currently works for deploying only (as the name of the plugin suggests). Maybe the author has plans to extend it so that it works for resolving as well (sounds like a useful feature to me). If you can't publish with the unique version plugin (e.g. if the snapshots are not owned by you), then you could ask that at the sbt forum.
So I can't offer a solution that works precisely as maven does for your use case, but hopefully it gives some useful info for you and others.
这篇关于SBT取决于特定的快照版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!