Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SBT: Where does compiler-interface go once it is built?

I'm noticing very slow build times for my Play 2.3 project on our CircleCI server relative to my local build machine. One reason for this is that on every build, SBT prints out the following:

[info] 'compiler-interface' not yet compiled for Scala 2.11.4. Compiling...

then proceeds to spend about a minute compiling the compiler. On my laptop, this happened exactly one time, then never again. My assumption is that on my laptop, the compiler gets cached somewhere so that it doesn't have to be rebuilt again the next time, whereas on the CI server, that cache directory gets blown out.

CircleCI allows you to specify cache directories that won't get destroyed between builds (or more accurately, get destroyed, then rebuilt) so a simple solution for me would be to tell CircleCI to save that directory.

Problem is, I don't know where it is. I'm already saving ~/.sbt and ~/.ivy2 and it hasn't helped. Is the compiler built to a different location that I can cache? Any other ideas on how to make this problem go away short of downgrading my Scala compiler?

like image 724
Joe Avatar asked Dec 03 '25 09:12

Joe


1 Answers

I looked on my setup, and it seems that the compiler-interface should indeed be in ~/.sbt or ~/.ivy2.

Your problem is probably coming from how you save these directories. Are you sure you save them for the correct user? You have to save them for the use that launch the sbt command.

like image 127
Lomig Mégard Avatar answered Dec 05 '25 00:12

Lomig Mégard



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!