没有获得神器的最新快照

时间:2015-02-21 07:15:26

标签: scala sbt artifactory

我正在使用artifactory来提供jar文件。我有scalaSBT项目。 SBT无法解析最新快照。它总是解决第二个版本。我的意思是,如果我清除artifactory中的特定jar文件,我需要构建两次。只有这样,它才得到解决。

清除jar并在第一次构建之后,这些是arifacts:

- 1.2-SNAPSHOT
   - frameworks_2.11-1.2-20150221.064040-1-javadoc.jar
   - frameworks_2.11-1.2-20150221.064040-1-sources.jar
   - frameworks_2.11-1.2-20150221.064040-1.pom
   - frameworks_2.11-1.2-20150221.064040-2.jar
   - maven-metadata.xml
 - maven-metadata.xml

即使jar存在,也不会在我的本地项目中得到解决。在再次构建框架jar之后,这里是神器列表。

- 1.2-SNAPSHOT
   - frameworks_2.11-1.2-20150221.064040-1-javadoc.jar
   - frameworks_2.11-1.2-20150221.064040-1-sources.jar
   - frameworks_2.11-1.2-20150221.064040-1.pom
   - frameworks_2.11-1.2-20150221.064040-2-javadoc.jar
   - frameworks_2.11-1.2-20150221.064040-2-sources.jar
   - frameworks_2.11-1.2-20150221.064040-2.jar
   - frameworks_2.11-1.2-20150221.064040-2.pom
   - frameworks_2.11-1.2-20150221.064040-3.jar
   - maven-metadata.xml
 - maven-metadata.xml

在此之后,它正在得到解决。现在,即使做了一些改变就是构建jar,它总是只能解决这个问题。这些新变化都不会得到反映。

有人可以告诉我如何解决这个问题吗?因此,我需要始终清除神器并两次构建jar

1 个答案:

答案 0 :(得分:3)

问题在于为jar工件计算的唯一快照版本。当其他工件获得版本2.11-1.2-20150221.064040-1时,jar工件具有不同的版本 - 2.11-1.2-20150221.064040-2 这种情况的根本原因在于为独特快照配置存储库Maven Snapshot Version Behavior时的Artifactory行为与SBT部署工件的方式相结合。请参阅此stackoverflow question的答案,以获得对该问题的详细解释 如果您想使用独特的快照:

1)应用Artifactory邮件列表中描述的solution(基于提到的stackoverflow问题/答案)
您需要以下列方式定义存储库,以便传递build.timestamp矩阵参数:

publishTo := Some("Artifactory Realm" at "http://localhost:8081/artifactory/libs-snapshot-local;build.timestamp=" + new java.util.Date().getTime)

2)尝试使用sbt-unique-version。在这种情况下,您需要将Maven Snapshot Version Behavior更改为" Deployer"。