为什么IntelliJ无法找到SBT快照依赖项?

Dan*_*ski 5 scala intellij-idea sbt playframework-2.0 playframework-2.3

我有一个Play 2.3 Scala项目,它在使用activator run命令启动时运行良好.但是,如果我尝试从" 运行/调试配置"选项在IntelliJ 13中启动它,则解决快照依赖性时会出现问题.

根据日志,检查存储库以查找依赖项:

[warn]  module not found: org.package#my-dep;1.0-SNAPSHOT
[warn] ==== local: tried
[warn]   C:\Users\MyUser\.ivy2\local\org.package\my-dep\1.0-SNAPSHOT\ivys\ivy.xml
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/org/package/my-dep/1.0-SNAPSHOT/my-dep-1.0-SNAPSHOT.pom
[warn] ==== Typesafe Releases Repository: tried
[warn]   http://repo.typesafe.com/typesafe/releases/org/package/my-dep/1.0-SNAPSHOT/my-dep-1.0-SNAPSHOT.pom
Run Code Online (Sandbox Code Playgroud)

依赖关系出现在我的〜/ .ivy2/cache目录中.我还有其他依赖项没有标记为快照,看起来IntelliJ没有找到它们的问题.它仅适用于快照.

更新

看起来IDEA忽略我的〜/ .sbt/repositories文件,其中定义了快照存储库并使用默认的SBT插件配置.

实际上是否可以配置IDEA以便它使用我的自定义存储库定义?

Dan*_*ski 3

我尝试在Settings -> SBT -> Launcher -> Custom 中设置自定义 sbt-launcher ,但没有成功。

在此输入图像描述

使用运行配置运行应用程序后,我可以在日志中看到,由于某种原因,我指定的启动器被属于 Scala 插件一部分的另一个启动器覆盖。

-Dsbt.global.base=C:\Users\User\AppData\Local\Temp\sbt-global-plugin3401565420094215394stub -classpath C:\Users\User\.IntelliJIdea13\config\plugins\Scala\launcher\sbt-launch.jar
Run Code Online (Sandbox Code Playgroud)

最后,我通过添加到运行配置 JVM 选项来强制 IDEA 使用我的~/.sbt/repositories 。-Dsbt.repository.config=C:\Users\User\.sbt\repositories

在此输入图像描述

我还设置了-Dsbt.override.build.repos=true以确保仅使用自定义配置中列出的存储库。