and*_*onq 16 scala intellij-idea ivy sbt
我不是sbt的专家,所以我的问题可能是有点菜鸟,但我注意到,当我创建一个项目并使用sbt下载它的依赖项时,如果我用intellij打开项目,所有的依赖项都会重新加载,同样发生在逆orden intellij-> sbt和激活器..
关于sbt的我(差)知识比使用常春藤和依赖关系下载到〜/ .ivy2 /文件夹...这是sbt正在下载我的deps,但似乎比intellij正在使用其他文件夹.
我个人并没有使用这么多激活剂,但我想配置sbt和intellij使用相同的常春藤路径......
2)最近我使用sbt + publishLocal将finagle-postgre发布到我的本地常春藤,我可以在我的常春藤文件夹中查看
/home/yo/.ivy2/local/com.twitter/finagle-postgres_2.11/0.1.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
但遗憾的是intellij无法解决此依赖关系,我尝试将此行添加到我的构建中
resolvers += Resolver.file("Local", file( Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns)
Run Code Online (Sandbox Code Playgroud)
但似乎行不通
3)下载的路径依赖项与使用哪个sbt-launch.jar文件有关?我怎么知道sbt-lauch.jar文件现在正在使用sbt ...
多谢你们!
如果我们谈论IntelliJ在SBT/Activator已经下载后出现下载工件,那么事实证明它可能只是IntelliJ正在下载源 - 它不会重新加载二进制工件,只是源文件陪他们.
当您Refreshing SBT project在Background Tasks弹出窗口中查看任务时,这并不是很明显,因为完整的下载路径被截断,因此您会看到如下内容:
[info] downloading https://repo1.maven.org/maven2/org/apache/httpcompo...
Run Code Online (Sandbox Code Playgroud)
..很自然地假设这是你在控制台上看到SBT下载的二进制工件,但如果你检查完整的日志,你可以看到完整的故事(go Help- > Show Log in files并sbt.last.log在文件浏览器中打开).
您将看到下载的唯一工件以-sources.jar:
$ grep repo1.maven.org /home/roberto/.IntelliJIdea2016.3/system/log/sbt.last.log
[info] downloading https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6-sources.jar ...
[info] downloading https://repo1.maven.org/maven2/com/googlecode/javaewah/JavaEWAH/0.7.9/JavaEWAH-0.7.9-sources.jar ...
[info] downloading https://repo1.maven.org/maven2/org/pegdown/pegdown/1.2.1/pegdown-1.2.1-sources.jar ...
[info] downloading https://repo1.maven.org/maven2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3-sources.jar ...
Run Code Online (Sandbox Code Playgroud)
```
如果您在执行时没有Sources选中复选框Import project,则不会发生这些源下载.
使用IntelliJ 2016.3.5和Scala插件v2016.3.9进行测试
首先,激活器只是 SBT 本身的启动器,因此行为上应该没有差异。
其次,如果您没有另外告知,IntelliJ 也会默认使用这些文件~/.ivy2(例如通过设置 SBT_OPTS 环境变量,但这取决于您的 IntelliJ 版本)。
如果您使用不同的 scala 版本(例如 2.10.x 与 2.11.x)且未scalaVersion在项目中明确设置,则可能会产生差异。然后,每个工具都会下载默认配置的相应 scala 版本的相应库。
另一件事是,如果您在设置中启用了该功能,IntelliJ 将为每个依赖项下载源代码和 javadoc jar,这可能看起来会再次下载依赖项。
请注意,我在这里疯狂猜测,因为您没有包含您正在使用的程序的任何输出,因此很难说出真正的问题是什么。