我有一个使用Swing的Scala2.10.3项目。我有以下情况-22:
我可以用
$ sbt -java-home /usr/lib/jvm/java-6-openjdk-amd64/ test:products但当我试图逃跑时:
$ sbt runsbt显示JVM版本发生了变化,并试图重新编译所有内容,从而引发第一个问题导致的编译错误。
如何说服sbt运行已经编译的项目,尽管使用的是不同的JVM?使用assembly不是一种选择,因为这需要几分钟,我需要做很多事情。
我也尝试使用export JAVA_HOME进行切换,但这具有相同的效果,sbt将尝试在run上重新编译。
发布于 2014-02-22 16:59:35
您可以使用 key (作用域为run任务)来控制运行时使用的JDK。
假设您使用JDK6运行SBT,如下所示:
sbt -java-home /usr/lib/jvm/java-6-openjdk-amd64/在javaHome中添加build.sbt的自定义位置
// no custom Java_HOME without forking
fork in run := true
// your JDK7 install
javaHome in run := Some(file("/usr/lib/jvm/java-7-openjdk-amd64/"))然后,compile将使用JDK6和run JDK7。还可以删除上述定义中的in run,使其同时应用于run和test。
有关更多详细信息,请参阅SBT文档的Forking部分。
发布于 2014-02-22 14:55:58
这里有一个可能的解决方案:这个项目是用IntelliJ思想开发的。
sbt插件作为IDEA。https://stackoverflow.com/questions/21955771
复制相似问题