2014-07-25 25 views

回答

1

如何指示Gradle的Scala插件在已安装的JVM中选择特定的JVM?

这当前不支持。最好的解决方案是使用所需的JVM运行Gradle本身。它可能可以通过...

tasks.withType(ScalaCompile) { 
    scalaCompileOptions.with { 
     useAnt = false 
     fork = true 
     forkOptions.jvmArgs = [...] 
    } 
} 

,而不是设置一个不同的JVM引导类路径......,但你必须自己弄清楚的细节(见JVM文档)。你也必须知道JVM的安装路径。

0

的scalac编译器有特殊的参数

-javabootclasspath 路径
覆盖Java的引导类路径。
-javaextdirs path
覆盖Java extdirs类路径。

你必须使用additionalParameters参数

这种方法并不需要分叉

allprojects { 
    tasks.withType(ScalaCompile) { 
    if (sourceCompatibility == '1.7') { 
     scalaCompileOptions.with { 
      def jdk7rt = new File("$System.env.JAVA7_HOME", "jre/lib/rt.jar").canonicalPath 
      def jdk7ext = new File("$System.env.JAVA7_HOME", "jre/lib/ext").canonicalPath 
      additionalParameters = ["-javabootclasspath $jdk7rt".toString(), "-javaextdirs $jdk7ext".toString()] 
     } 

    } 
    } 
} 

我用我的操作系统与JVM这种方法通过从gradle这个斯卡拉插件的参数1.7作为默认值编译JDK8某些需要javafx8的子项目。所以它应该适用于你的情况。