Вот один из способов запуска Scala REPL для проекта Gradle: пусть Gradle скомпилирует и выведет путь к классам, а также запустит 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
Подробнее о моем сообщении в блоге .