やろうとした理由は…単なる思いつき。 調べたらいろいろな方が試されてました。手順をまとめておく。
既存のアプリケーションがMavenなので、Mavenで管理する方針で。scala-maven-pluginなるものがあるので、これを使う。
<pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <useIncrementalCompilation>false</useIncrementalCompilation> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <executions> <execution> <id>scala-compile-first</id> <phase>process-resources</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> <execution> <id>scala-test-compile</id> <phase>process-test-resources</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <scalaVersion>2.11.7</scalaVersion> </configuration> </plugin> ... <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.7</version> </dependency> </dependencies> ...
executionでScalaもJavaもコンパイルするように設定している。
Scalaコードはデフォルトでは別ディレクトリになる。アプリケーションコードがsrc/main/scala、テストコードはsrc/test/scalaとなる。設定で別ディレクトリに変更することもできる。
コントローラは普通にScalaで書くだけ。
package hoge.controller import org.springframework.stereotype.Controller import org.springframework.web.bind.annotation.RequestMapping @Controller class HogeController { @RequestMapping(Array("/hoge")) def test : String = "hoge" }
この感じでビューにいった。次はDIしてみるかな。