IntelliJ 13 CE + Scala + Gradleでのプロジェクト作成


こんなクールな操作で開発ができるようになりたい

intellij CEをダウンロード

コミュニティエディションをダウンロードしてきます
http://www.jetbrains.com/idea/download/index.html

vimプラグインScalaプラグインを追加

ググると出てくるのでその通りに。

Gradleプロジェクトを作成

  • Use Auto-import(build.gradleを修正すると各種インポートが自動的に行われるっぽい)
  • Create directories for empty content roots automatically(今回で言うとScalaプラグインを作成した時のディレクトリ構造が自動的に追加されるっぽい)
  • User default gradle warpper(Mac上のgraldeではなくgradle-wrapperを使う)

f:id:flick-flick:20140216233722p:plain

build.graldeにscala Pluginを追加

build.graldeをエディタで開いて

apply plugin: 'scala'

を追記する

「Create directories for empty content roots automatically」が有効になっていると自動的にsrc/main/scalaディレクトリが自動で作成される

build.gradleにscala-compilerまわりのdependencyを追加

gradleでScalaコンパイルするために追加

apply plugin: 'java'
apply plugin: 'scala'

sourceCompatibility = 1.5
version = '1.0'


repositories {
    mavenCentral()
}

ext {
    scalaVersion = '2.10'
    scalaVersionRevision = '3'
    scalazVersion = '7.0.5'
    specs2Version = '2.3.4'
}

dependencies {
    compile "org.scala-lang:scala-compiler:$scalaVersion.$scalaVersionRevision"
    compile "org.scala-lang:scala-library:$scalaVersion.$scalaVersionRevision"
    compile "org.scala-lang:scala-reflect:$scalaVersion.$scalaVersionRevision"
}

Scalaコンパイラをライブラリとして設定する

IntelliJのGradle対応の問題なのか、Scalaプラグインの問題なのかしらんがgraldeでのscalacompilerへの依存をIntelliJが認識してくれないので、ライブラリとして
インストールして認識させる。

mavenを使ってscala-compilerをダウンロード
f:id:flick-flick:20140216234608p:plain
プロジェクト設定でFacetにScalaを追加してCompiler Libraryとして認識させる
f:id:flick-flick:20140216234808p:plain

試しに実行してみる

src/main/scalaにMain.scalaみたいな適当objectを作る

object Main extends App{
  println("hoge")
}

Main.scala上でRun(Ctrl + Shift + F10)してhogeがコンソールに表示されればOK