sbt为特定/时间戳快照版本构造错误的路径

时间:2014-05-09 11:39:52

标签: scala maven playframework sbt dependency-management

背景

我正在开发Play 2.2.3应用程序; Play构建系统使用sbt。

我正在使用Sonatype Nexus OSS来管理Maven构建和部署的各种库。目前,我正在部署这些库的快照版本。例如:

<groupId>myGroup</groupId>
<artifactId>myArtifact</artifactId>
<version>0.1-SNAPSHOT</version>

Play应用程序依赖于这些库的快照版本。

意图

在Play项目中,我想使用特定的(因此,“timestamped”)快照版本的依赖项 - 比如0.1-20140509.053703-1 - 而不是指定的最新版本0.1-SNAPSHOT

问题

虽然后者运作良好,但sbt似乎无法解析特定版本。至少sbt构造指向该特定版本的URL:包含工件的目录的名称以实际时间戳而不是字符串SNAPSHOT结束。

示例

我创建了一个新的Play应用程序,并在文件build.sbt中添加了以下依赖项:libraryDependencies += "myGroup" % "myArtifact" % "0.1-20140509.053703-1"

解析该依赖关系时,sbt会构造以myGroup/myArtifact/0.1-20140509.053703-1/myArtifact-0.1-20140509.053703-1.pom结尾的网址。

请注意,第三个路径组件是0.1-20140509.053703-1。因此,包含工件myArtifact的目录也错误地包含时间戳。

正确的目录名称为0.1-SNAPSHOT;因此,使用SNAPSHOT而不是实际的时间戳。因此,完整正确的网址将以myGroup/myArtifact/0.1-SNAPSHOT/myArtifact-0.1-20140509.053703-1.pom结尾。

通过使用依赖项libraryDependencies += "myGroup" % "myArtifact" % "0.1-SNAPSHOT"来引用最新的快照版本。网址以0.1-SNAPSHOT/myArtifact-0.1-SNAPSHOT.pom结尾。

问题

我如何说服sbt下载特定的快照版本?

0 个答案:

没有答案