Gradleでは、ScalaプラグインでScalaソースをビルド(コンパイル)してjarファイルを生成することが出来る。
Scalaのプロジェクトを作る例。
apply plugin: 'scala' apply plugin: 'eclipse' defaultTasks 'jar' group = 'jp.hishidama.scala' version = '0.1-SNAPSHOT' sourceCompatibility = 1.7 targetCompatibility = 1.7 eclipseJdt << { File f = file('.settings/org.eclipse.core.resources.prefs') f.write('eclipse.preferences.version=1\n') f.append('encoding/<project>=UTF-8') } repositories { mavenCentral() // mavenLocal() } dependencies { compile 'org.scala-lang:scala-library:2.10.4' // testCompile 'junit:junit:4.13' } task wrapper(type: Wrapper) { gradleVersion '2.0' jarFile file('.buildtools/gradlew.jar') }
> gradle wrapper > ./gradlew eclipse :eclipseClasspath :eclipseJdt :eclipseProject :eclipse BUILD SUCCESSFUL Total time: 4.605 secs
gradleコマンドにeclipseタスクを指定して実行すると、Eclipseのプロジェクトの定義が作成される。
「./gradlew jar」のようにjarタスクを指定すると、jarファイルの生成までが行われる。
GradleのScalaプラグインでは、特に指定しない場合は以下のようなディレクトリー構成を想定している。
(Mavenの構成とそっくり)
ビルドを実行すると、プロジェクトディレクトリーの下に以下のようなディレクトリーが作られる。
生成されるjarファイル名は、デフォルトでは「プロジェクトディレクトリー名.jar
」となる。
Scalaプラグインの設定をしてコマンドを実行すると、以下のようなエラーが発生したorz
$ gradle eclipse FAILURE: Build failed with an exception. * Where: Build file 'D:\workspace\scala-example\build.gradle' line: 1 * What went wrong: A problem occurred evaluating root project 'scala-example'. > Could not create task of type 'ScalaDoc'. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 3.409 secs
Gradle1.12のScalaプラグインはJDK1.8に対応しておらず、このようなエラーになるらしい。
使用するJDKを1.7にする(JAVA_HOMEにJDK1.7のパスを指定する)とエラーは出なくなる。
ただし、当然コンパイルバージョンが1.7までしか対応ないので、sourceCompatibilityやtargetCompatibilityに1.8を指定するとコンパイルエラーになってしまうが…。
もしくは、Gradle2だとJDK1.8に対応しているらしい。
参考: Gradle TopicsのEnable to setup a simple scala build