IntelliJ IDEA开发Scala代码,与java集成,maven打包编译

今天尝试了一下在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的代码都运行了。

posted @ 2016-12-21 14:45  rightmin  阅读(18381)  评论(0编辑  收藏  举报