I have a class that uses jna. It gets recompiled every time, regardless of whether anything has changed. I tracked it down to a the dependency graph getting "confused". The problem is some of the jna classes get resolved to the sbt-launcher jna jar:
project/boot/other/net.java.dev.jna/jna/3.2.3/jna-3.2.3.jar
This happens in sbt.Analyze:
for(clazz <- loaded; file <- ErrorHandling.convert(IO.classLocationFile(clazz)).right)
IO.classLocationFile(clazz) returns the boot/other jar for com.sun.jna.Native and some others.
It seems like classLocationFile should only consider the explicit compile classpath...
This is a pretty big blocker for me to move to 0.9.x, since my class happens to be a root dependency for a large project.