Idea,sbt,无法重新解析警告

45

我已经将我的构件推送到oss nexus存储库,并将其添加为另一个项目的依赖项。但是,我的IDE(IntelliJ IDEA)一直在警告我:

[warn] Unable to reparse com.github.kondaurovdev#jsonapi_2.11;0.1-SNAPSHOT from sonatype-snapshots, using Fri May 13 17:12:52 MSK 2016 [warn] Choosing sonatype-snapshots for com.github.kondaurovdev#jsonapi_2.11;0.1-SNAPSHOT 

也许我以某种错误的方式推送了构件?但之前我这样做一切都没问题。如何摆脱这些警告?还是可以忽略它们吗?


2
我创建了一个基本的3行build.sbt文件,以重现问题:resolvers += Resolver.sonatypeRepo("snapshots") libraryDependencies += "org.postgresql" % "postgresql" % "9.4.1209-SNAPSHOT"然后运行sbt update - kshakir
1
我遇到了同样的问题。这个消息被显示出来,远程仓库中的SNAPSHOT构件被使用,忽略了我本地发布的构件。 - giannoug
2
FYI- 我使用1.0.0-M4运行了build.sbt,效果相同。我无法通过 github source 确定这个警告是一个bug还是一个feature。(顺便说一句:我用 addMavenResolverPlugin 比 http://stackoverflow.com/q/37126026/3320205 取得了更多进展,但遇到了“Failed to read artifact descriptor”的问题。)或许需要联系 sbt-dev? - kshakir
3
有人得到这方面的消息吗?我也遇到了同样的问题... - Bjarne77
2个回答

21

我也遇到过同样的问题。

你是否将SNAPSHOT版本发布到了你的artifactory?如果是的话,这个问题可能就是你的问题所在。

正如你知道的,当本地发布快照版本时,它会被存储在 .ivy2/local 目录下。远程版本存储在 .ivy2/cache 目录下。

当查看 .ivy2/cache/{dependency} 文件夹时,你会发现它只下载了 xml 和 properties 文件,没有jar包。这就是无法解析的实际原因,因为它不存在。

由于 .ivy2/cache 优先于 .ivy2/local,它不会看到你本地发布的版本。有两种方法来解决这个问题。

  • 更新你的快照版本号(推荐)
  • 从你的 artifactory 中删除 SNAPSHOT,并在每个具有本地版本的客户端上删除 .ivy2/cache/{dependency} 文件夹。

在我看来,第一种方法是可行的方式。


2
我甚至有第二个问题,也导致了同样的错误。在unmanagedBase目录中有相同的库,但是是旧版本。从该目录中删除这个旧版本将会解决问题。 - Jork
谢谢你的回答,你说的更新快照版本是什么意思?再次在本地发布不能解决这个问题。 - raam86
@raam86 我的意思是更新版本号,实际上发布一个新版本。 - Jork
2
为什么不允许发布同一版本但时间戳不同的多个快照?这样做有什么问题吗? - Edmondo

9

我曾经遇到过同样的问题,在我的 build.sbt 文件中添加以下内容后问题得以解决:

updateOptions := updateOptions.value.withLatestSnapshots(false)

您可以从https://github.com/sbt/sbt/issues/2650获取更多详细信息。


这个应该放在构建文件的哪里?当我把它放在构建文件的末尾时,我一直在收到一个错误。 - uh_big_mike_boi
这个键在 sbt 0.13.16 中还可用吗?我找不到它了。 - JayZee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接