IntelliJ IDEA開發Scala代碼,與java集成,maven打包編譯

今天嘗試了一下在IntelliJ IDEA裏面寫Scala代碼,而且作到和Java代碼相互調用,折騰了一下把過程記錄下來。java

首先須要給IntelliJ IDEA安裝一下Scala的插件,在IDEA的啓動界面點擊 Configure -> Plugins,而後搜索Scala,點擊 Install 便可,安裝完插件之後,就能夠建立Scala Project和Scala Class等。apache

安裝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工程,最簡單的那種: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目錄。ui

maven工程的java代碼通常是這麼放的:src/main/java/com.xxx.xxxspa

而咱們的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:scala

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的代碼都運行了。

相關文章
相關標籤/搜索