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

IntelliJ IDEA开发Scala代码,与java集成,maven打包编译的更多相关文章

  1. java通过maven打包解决xml读取格式失败问题

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi ...

  2. IntelliJ IDEA 开发scala

    1.下载安装IntelliJ IDEA,并安装scala插件 我下载的是linux的13版本,linux版本是绿色版本,有一个启动的脚本,运行就可以了,也可以在linux建立快捷方式.windows的 ...

  3. eclipse开发Groovy代码,与java集成,maven打包编译

    今天尝试了一下在eclipse里面写Groovy代码,并且做到和Java代码相互调用,折腾了一下把过程记录下来. 首先需要给eclipse安装一下Groovy的插件,插件地址:https://gith ...

  4. IntelliJ IDEA15开发时设置中java complier 的问题

    Error:java: Compilation failed: internal java compiler error set中java complier 设置的问题  ,项目中有人用jdk1.6 ...

  5. Jenkins 集成Maven打包SpringBoot项目并自动部署到Tomcat服务器

    提前条件: 1.在Jenkins服务器上安装Git.JDK和Maven 2.准备另一台服务器并安装Tomcat 3.Gitlab服务器 4.Gitlab仓库中上传SpringBoot项目代码 第一步, ...

  6. 【Java】maven打包源码、依赖插件

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...

  7. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  8. Eclipse集成Git做团队开发:代码管理

    在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...

  9. JetBrains IntelliJ IDEA 2019 for Mac(Java集成开发环境) 2019.3.1

    IntelliJ IDEA 2019中文激活版已全新上线,intellij idea mac是目前编程人员最喜欢的Java集成开发环境,具备智能代码助手.代码自动提示.重构.J2EE支持.Ant.JU ...

随机推荐

  1. java序列化浅谈

    首先大家进来第一个疑问肯定是"什么是序列化?为什么要使用序列化?怎么实现一个简单的序列化案例?" 1.序列化就是把对象以一种规范的二进制形式存在内存中,另一边以反序列化方式获取: ...

  2. EasyUI Parser 解析器

    Parser(解析器)应用场景 1,自动调用parser 只要我们书写相应的class,easyui就能成功的渲染页面,这是因为解析器在默认情况下,会在dom加载完成的时候($(docunment). ...

  3. 用firefox 31配合KeePass密码管理器实现web帐号密码自动填写登录

    原文:http://bbs.kafan.cn/thread-1754676-1-1.html KeePass的优势:1.这是一款完全开源的密码管理器2.很多人都使用lastpass来保存密码,而这种严 ...

  4. Lastpass——密码管理工具

    Lastpass是一个优秀的在线密码管理器和页面过滤器,采用了强大的加密算法,自动登录/云同步/跨平台/支持多款浏览器. 我之前一直都在使用这个工具,不过都是在浏览器上以扩展的方式使用,在火狐浏览器上 ...

  5. three.js 实现全景以及优化(2)

    继昨天全景实现后,再做了一个全景图切换实验; code:https://github.com/Thinkia/threejs_/blob/master/test/test1-panorama/inde ...

  6. 剑指Offer-数组中重复的数字

    package Array; /** * 数组中重复的数字 *在一个长度为n的数组里的所有数字都在0到n-1的范围内. * 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次 ...

  7. .net core2.0下Ioc容器Autofac使用

    .net core发布有一段时间了,最近两个月开始使用.net core2.0开发项目,大大小小遇到了一些问题.准备写个系列介绍一下是如何解决这些问题以及对应技术.先从IOC容器Autofac开始该系 ...

  8. Oracle的常用的命令

    --导出数据库 exp test2/test2@trp84 file=e:\test2.dmp owner=test2 --导入数据库 imp test2/test2@orcl file='e:\te ...

  9. springMVC框架+POI组件导出Excel

    目的:访问url(http://localhost:8080/POIOutputExcel/outputexcel.do)实现excel导出,效果图如下: 文件目录(配置文件就不多说了,跟前面的随笔一 ...

  10. linux小白成长之路10————SpringBoot项目部署进阶

    [内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...