在IntelliJ IDEA中更改sbt项目的常春藤缓存位置?

时间:2014-05-24 13:02:42

标签: scala intellij-idea sbt

我在IntelliJ 13.0.2中使用Scala项目获得了0.13.2。

我只想更改默认的../.ivy2/cache路径。

我尝试在SBT安装中的../bin/sbt文件中更改以下条目

-Dsbt.ivy.home=D:/IvyHome/.ivy

但没有运气。

enter image description here

即使在IDE中,我也找不到更新SBT_HOME

的地方

解决方案是什么?

enter image description here

3 个答案:

答案 0 :(得分:22)

首先,你有两个SBT插件。您使用的Scala插件版本已经支持SBT,您不需要额外的插件。我建议您先删除额外的插件。

Two Plugins

删除非官方插件

要删除非官方插件,请转到插件配置,然后删除SBT插件旁边的复选框。这不会完全删除插件,但会将其禁用。

Disable Plugin

更改缓存位置

只有一个插件后,您可以通过转到选项并搜索 sbt 来修改缓存的位置。您应该在 IDE设置中找到一个条目。

IDE Settings

您应该看到 VM参数。单击输入旁边的图标,然后在最后一行添加-Dsbt.ivy.home=D:/IvyHome/.ivy

Modify Settings

单击确定并在保存所有设置后重新启动IDE。

现在您应该使用新的家庭位置(当然,这仅适用于从IDE运行的构建,如果您从控制台使用SBT,它仍将使用旧的家庭设置。)

从控制台

更改SBT的缓存位置

如上段所述。此更改不会影响从控制台运行的SBT。这是因为默认情况下IntelliJ使用捆绑的SBT。

如果你想修改你从控制台运行的sbt的Ivy home,你有几种方法可以做到这一点。

我认为最简单的方法是修改sbtconfig.txt中的SBT_HOME/conf/sbtconfig.txt文件(仅适用于Windows - 在Linux上,您必须修改sbtopts)。

在文件末尾添加-Dsbt.ivy.home=D:/IvyHome/.ivy

另一种方法是修改Launcher Configuration as described in the documentation

答案 1 :(得分:4)

我在IntelliJ IDEA 14 Build 139.463.4(Play Framework 2.2.5项目)中遇到了同样的问题。

我按照以下步骤操作,但它对我不起作用。我最后通过添加到SBT Runner的VM参数来解决了这个问题:-Duser.home = D:/ Users / myName /。

SBT Launcher使用变量user.home来构建ivy-home变量。

答案 2 :(得分:1)

建议更改IDE设置的答案实质上更改了文件 .idea/sbt.xml(如果您对项目进行了更改)或C:\Users\***\.IdeaIC14\config\options\project.default.xml(如果您对IDE默认进行了更改)无论哪个项目。)

因此,如果您需要经常更改此文件,可以考虑将此文件放在源代码管理中。 (在我的情况下,我必须在Spark 1.4Spark 1.5库之间切换,这样做是值得的。)