今天嘗試了一下在IntelliJ IDEA里面寫Scala代碼,並且做到和Java代碼相互調用,折騰了一下把過程記錄下來。
首先需要給IntelliJ IDEA安裝一下Scala的插件,在IDEA的啟動界面點擊 Configure -> Plugins,然后搜索Scala,點擊 Install 即可,安裝完插件以后,就可以創建Scala Project和Scala Class等。
安裝Scala SDK:
第一次用IDEA創建Scala Project的時候會提示你安裝Scala SDK,它里面可以直接下載sdk,但是建議不要這么做,如果遇到被牆的情況會導致IDEA卡住不動。
自己去官網下載:http://downloads.lightbend.com/scala/2.12.1/scala-2.12.1.tgz
解壓到任意目錄,並設置好SCALA_HOME和PATH,然后在命令行里面測試一下是否安裝正確:scala -version,安裝正確會顯示版本信息。
創建一個Maven工程,最簡單的那種:maven-archetype-quickstart(mvn archetype:generate -DgroupId=com.scala -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false)
打開這個項目,然后在項目里面創建一個scala-sdk:
Project Structure -> Global Libraries -> + Scala SDK,然后選擇上面下載解壓出來的scala目錄。
maven工程的java代碼一般是這么放的:src/main/java/com.xxx.xxx
而我們的Scala的代碼可以這么放:src/main/scala/com.xxx.xxx
並把這個目錄設置為Sources Root(在IDEA里面右擊scala文件夾,然后點擊 Make Directory As -> Sources Root)
POM.xml里面加入scala相關的dependency和plugin
<dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.12.1</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-compiler</artifactId> <version>2.12.1</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-reflect</artifactId> <version>2.12.1</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-actors</artifactId> <version>2.11.8</version> </dependency> <dependency> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> </dependency> <plugin> <!-- 這是個編譯java代碼的 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <plugin> <!-- 這是個編譯scala代碼的 --> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <id>scala-compile-first</id> <phase>process-resources</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> </executions> </plugin>
在scala目錄里面新建一個scala class:
class ScalaApp { def main(args: Array[String]) { println("hello scala") } }
然后在Java里面的一個class里面調用:
public static void main(String[] args) { System.out.println("Hello World!"); ScalaApp scalaApp = new ScalaApp(); scalaApp.main(args); }
然后在IDEA里面compile一下,運行上面的main函數,可以發現java和scala的代碼都運行了。