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的代码都运行了。
IntelliJ IDEA开发Scala代码,与java集成,maven打包编译的更多相关文章
- java通过maven打包解决xml读取格式失败问题
		
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi ...
 - IntelliJ IDEA 开发scala
		
1.下载安装IntelliJ IDEA,并安装scala插件 我下载的是linux的13版本,linux版本是绿色版本,有一个启动的脚本,运行就可以了,也可以在linux建立快捷方式.windows的 ...
 - eclipse开发Groovy代码,与java集成,maven打包编译
		
今天尝试了一下在eclipse里面写Groovy代码,并且做到和Java代码相互调用,折腾了一下把过程记录下来. 首先需要给eclipse安装一下Groovy的插件,插件地址:https://gith ...
 - IntelliJ IDEA15开发时设置中java complier 的问题
		
Error:java: Compilation failed: internal java compiler error set中java complier 设置的问题 ,项目中有人用jdk1.6 ...
 - Jenkins 集成Maven打包SpringBoot项目并自动部署到Tomcat服务器
		
提前条件: 1.在Jenkins服务器上安装Git.JDK和Maven 2.准备另一台服务器并安装Tomcat 3.Gitlab服务器 4.Gitlab仓库中上传SpringBoot项目代码 第一步, ...
 - 【Java】maven打包源码、依赖插件
		
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...
 - 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA
		
开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...
 - Eclipse集成Git做团队开发:代码管理
		
在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...
 - JetBrains IntelliJ IDEA 2019 for Mac(Java集成开发环境) 2019.3.1
		
IntelliJ IDEA 2019中文激活版已全新上线,intellij idea mac是目前编程人员最喜欢的Java集成开发环境,具备智能代码助手.代码自动提示.重构.J2EE支持.Ant.JU ...
 
随机推荐
- webuploader 上传文件  生成链接下载文件
			
最近 在asp.net MVC 项目 需要实现一个Excel和 图片上传功能.之前有使用过SWFUpload 做过上传图片功能,在本次实现过程中,有人推荐WebUploader 上传组件,因此采用we ...
 - python笔记之异常
			
异常 內建异常在exceptions模块内,使用dir函数列出模块的内容. 自定义异常类:继承基类Exception. 异常可以使用raise语句引发,可以使用try ... except ... e ...
 - Junit test使用
			
1.导入maven依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</arti ...
 - 在线资源--图片/json等
			
1. 在线图片: http://image.zhangxinxu.com/image/study/s/s256/mm3.jpg // mmX.jpg: X可为任意的数字 2. 在线json: 雅虎天 ...
 - 前端touch事件方向的判断
			
移动端touch事件判断滑屏手势的方向 方法一 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touchmove事件时,在获取此时手指的横坐标 ...
 - Dynamics 365 Online-使用Azure Logic App 与 Dynamics 365 集成
			
什么是Logic App? Azure Logic App 是微软发布的集成平台的产品,有助于生成,计划和自动完成工作流形式的流程,适合跨企业或组织集成,数据,系统和服务.与此同时,Logic App ...
 - java基础笔记(10)----集合之set集合
			
set接口特点: 存储任意Object元素 无序,无下标,元素内容不可以重 方法: 继承父接口Collection中的所有方法 遍历: 有两种遍历方法,foreach遍历和迭代遍历 forEach遍历 ...
 - 记录python接口自动化测试--unittest框架基本应用(第二目)
			
在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用 ...
 - python 闭包计算移动均值及nonlocal的使用
			
class Averager1(): '''计算移动平均值的类第一种写法''' def __init__(self): self.series = [] def __call__(self,new_v ...
 - 【Swift】Runtime动态性分析
			
Swift是苹果2014年发布的编程开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序.Swift已经开源,目前最新版本为2.2.我们知道Objec ...