是否有一种从gradle任务调用scala REPL的标准方法?有插件吗?我还没找到一个。我可以按照这个例子,但似乎有点过时了,我想知道是否有更好的方法:
http://gradle.1045684.n5.nabble.com/Reading-keyboard-input-td3073108.html
谢谢。
答案 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的详细信息。