Keep on moving

あんまりまとまってないことを書きますよ

GradleでScala projectをはじめる

近頃Scalaを学び始めるのにどうやると学びはじめやすいのかと考えることが多いです。 すでにJavaを知っているならば覚えることが少ないほうがいいよなーと思ってるので、ひとまず Gradleから始める方法をまとめておこうと思います

update 2017.11.05
Gradle 4.3
Scala 2.12.x

TL;DR

Gradle Scala-plugin超便利、sbtでできている差分コンパイル相当もできる

The Scala Plugin - Gradle User Guide Version 4.3

Gradle Scala plugin

Gradleをまずはインストールします。

Installing Gradle - Gradle User Guide Version 4.3

フォルダをつくって以下のコマンドを実行するだけでScalaのフォルダ構成とbuild.gradleを生成してくれます。

$ cd path/to/src
$ mkdir gradle-scala
$ gradle init --type scala-library
 tree
.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   └── scala
    │       └── Library.scala
    └── test
        └── scala
            └── LibrarySuite.scala

minimum 構成

ちなみにbuild.gradleの記述量をなるべく少なくしたい場合はこんな感じでOK

gist.github.com

scala repl on gradle

gradleから scala reple が使いたいときはこんな感じでいいみたい

stackoverflow.com

以下の様にscala-compilerも入れることでreplタスクが使える

dependencies{
  compile "org.scala-lang:scala-library:2.11.7"
  compile "org.scala-lang:scala-compiler:2.11.7"
}

task repl(type:JavaExec) {
  main = "scala.tools.nsc.MainGenericRunner"
  classpath = sourceSets.main.runtimeClasspath
  standardInput System.in
  args '-usejavacp'
}

あとは以下の様に起動できます

gradle repl --console plain --no-daemon

Please Try It!