Changing Ivy Cache Location for sbt projects in In

2019-01-17 16:45发布

问题:

I have sbt 0.13.2 with a Scala project in IntelliJ 13.0.2.

I just want to change my default ../.ivy2/cache path.

I tried to change following entry in ../bin/sbt file in SBT installation

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

But no luck.

Even in the IDE I couldn't find the place to update SBT_HOME

What would be the solution?

回答1:

First of all you have two SBT plugins. The version of Scala plugin you're using already supports SBT, and you don't need an extra plugin. I recommend that you start by removing the extra plugin.

Remove unofficial plugin

To remove the unofficial plugin go to plugins configuration and remove the check next to the SBT plugin. This will not remove the plugin completely, but will keep it disabled.

Change the cache location

Once you have only single plugin, you can modify the location of the cache, by going to options, and searching for sbt. You should find an entry in IDE Settings.

You should see the VM Parameters. Click the icon next to the input, and add -Dsbt.ivy.home=D:/IvyHome/.ivy in the last line.

Click OK and restart the IDE after saving all settings.

Now you should be using the new home location (of course this is true only for the builds run from IDE, if you use SBT from console, it will still use an old home setting).

Change the cache location for SBT ran from Console

As pointed out in the paragraph above. This change will not effect SBT ran from console. This is because by default IntelliJ uses bundled SBT.

If you want to modify your Ivy home for sbt, which you run from console, you have several ways of doing that.

I think the simplest is to modify the sbtconfig.txt file in the SBT_HOME/conf/sbtconfig.txt (Windows only - on Linux you'd have to modify sbtopts).

At the end of the file add -Dsbt.ivy.home=D:/IvyHome/.ivy.

The other way would be to modify Launcher Configuration as described in the documentation



回答2:

I had the same issue with IntelliJ IDEA 14 Build 139.463.4 (Play Framework 2.2.5 project).

I followed the steps below but it did not work for me. I finally fixed the issue by adding to the VM Parameters of the SBT Runner : -Duser.home=D:/Users/myName/ .

The variable user.home is used by the SBT Launcher to build ivy-home variable.



回答3:

The answer suggesting changing IDE settings essentially changed the file .idea/sbt.xml (if you made changes for the project), or C:\Users\***\.IdeaIC14\config\options\project.default.xml (if you made changes for the IDE default regardless which project).

Therefore, you may consider putting this file in source control if you need to change it frequently. (In my case I had to switch between the Spark 1.4 and Spark 1.5 libraries, making this worthwhile.)