scala - 为什么 IntelliJ 找不到 SBT 快照依赖项?

标签 scala intellij-idea playframework-2.0 sbt 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

依赖项位于我的 ~/.ivy2/cache 目录中。我还有其他未标记为快照的依赖项,看起来 IntelliJ 找到它们没有问题。它仅适用于快照。

更新

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

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

最佳答案

我尝试在“设置 -> SBT -> 启动器 -> 自定义”中设置自定义 sbt-launcher,但没有成功。

enter image description here

使用运行配置运行应用程序后,我可以在日志中看到,出于某种原因,我指定的启动器被属于 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

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

enter image description here

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

关于scala - 为什么 IntelliJ 找不到 SBT 快照依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933523/

相关文章:

playframework - 如何在关机时停止 akka 线程

scala - 为什么我在游戏 2 中得到 `Configuration error[Missing application.secret]`?

scala - 我应该创建特征来表示模型的枚举值吗?

Scala/Slick 3.0.1 - 更新多列

java - IntelliJ IDEA定义的maven pom中的错误

intellij-idea - 在PhpStorm项目工具窗口中显示.idea文件夹

java - Play Framework 2 - 如何在不调用 .get() 的情况下等待多个 WS 响应?

python - 将在 python 中训练的 xgboost 模型加载到 scala

scala - SBT 在编译期间抛出 StackOverflowError

scala - 类型类和依赖类型