背景
我正在开发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下载特定的快照版本?