从gradle运行scala REPL?

时间:2012-03-31 20:07:19

标签: scala gradle

是否有一种从gradle任务调用scala REPL的标准方法?有插件吗?我还没找到一个。我可以按照这个例子,但似乎有点过时了,我想知道是否有更好的方法:

http://gradle.1045684.n5.nabble.com/Reading-keyboard-input-td3073108.html

谢谢。

2 个答案:

答案 0 :(得分:6)

与Gradle捆绑在一起的Scala插件目前没有REPL支持。然而,这可能会很快改变,因为我们目前正在投资改进我们的Scala支持。请在http://forums.gradle.org了解您的意愿。

答案 1 :(得分:2)

以下是为Gradle项目启动Scala REPL的一种方法:让Gradle编译并输出类路径,并从shell脚本中单独启动REPL。

<强>的build.gradle

project(':repl') {

    def scalaVersion = '2.11.7'

    // Require the scala-compiler jar
    buildscript {
        dependencies {
            classpath "org.scala-lang:scala-compiler:${scalaVersion}"
        }
        repositories {
            mavenCentral()
        }
    }

    // The path of the scala-compiler jar
    def scalaPath = buildscript.configurations.classpath.find {
        it.name == "scala-compiler-${scalaVersion}.jar"
    }

    // The classpath of this project and its dependencies
    def classpath = sourceSets.main.runtimeClasspath.asPath

    // Prints the classpath needed to launch the REPL
    task printClasspath << {
        println "${scalaPath}:${classpath}"
    }

}

<强> repl.sh

#!/bin/bash
gradle :repl:compileScala && \
java -Dscala.usejavacp=true \
     -classpath "$(gradle :repl:printClasspath --quiet)" \
     scala.tools.nsc.MainGenericRunner

有关blog post的详细信息。