Scala学习系列(二)——环境安装配置
Scala下载地址:https://www.scala-lang.org/download/
一、安装JDK
首先,因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK
二、二进制安装方式
我们可以直接用二进制安装Scala 还是下载网址
Windows安装Scala编译器
访问Scala官网http://www.scala-lang.org/下载Scala编译器安装包,下载对应版本的.msi文件后点击下一步就可以了
Linux安装Scala编译器
tar.gz的版本 然后解压Scala到指定目录
tar -zxvf scala-2.13.1.tar.gz -C /usr/java
配置环境变量,将scala加入到PATH中
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.13.1/bin
使用ScalaREPL
Scala提供了REPL 交互式解释环境
在我们安装好scala 可以直接在命令行输入scala进入
三、通过Sbt安装Scala
官网推荐通过Sbt安装Scala ,Scala's build tool
1、使用IDEA安装Scala
安装
- 确保安装了JDK1.8
- 下载并安装IDEA https://www.jetbrains.com/idea/download/ (公众号回复“激活” 获取IDEA激活码)
- 给IDEA安装Scala插件 Settings/Preferences
创建
打开IntelliJ并单击File => New => Project
在左侧面板上,选择Scala。在右侧面板上,选择“ IDEA”。
将该项目命名为scala-demo
假设这是您第一次使用IntelliJ创建Scala项目,则需要安装Scala SDK。在Scala SDK字段的右侧,单击“ 创建”按钮
选择版本号,然后单击“ 下载”。这可能需要几分钟,但是以后就不用下载了
创建SDK后,您将返回“新建项目”窗口,点击完成
编写代码
在左侧的Project窗格中,右键单击src
并选择 New => Scala class
命名为Hello 类型为Object
编写代码
运行
直接点击剪头或者右键选择Run'Hello'
成功!
测试
在左侧的项目窗格中,右键单击 src
并选择New => Scala Worksheet
点击运行 成功!
2、使用IDEA SBT开发Scala
上面我们通过Idea安装并运行了Scala的程序 我们已经可以在IDEA中开发Scala了!我们平时的练习与测试完全可以进行了
但是在构建工程时,需要对包版本进行管理,我们最好在IDEA中构建一个标准的Sbt项目
创建
请打开IntelliJ并选择“ Create New Project”
在左侧面板上,选择Scala,在右侧面板上,选择sbt
点击下一步
将项目命名为“ SbtExampleProject”
确保JDK版本为1.8,sbt版本至少为0.13.13
了解目录结构
sbt为我们创建了目录结构
这些都很有用 都是sbt的基本结构
build.properties里记录了sbt.version
build.sbt里记录了 项目名 scalaVersion 等信息 以后我们添加依赖也是在这里
未来我们会仔细介绍
如果项目构建不成功 注意查看本机sbt scala版本是否能对应
报错idea 使用sbt构建工程时错误unresolved dependency: org.scala-sbt#sbt;0.13.8: not found
1.出现场景:在idea中使用sbt构建工程时,使用默认的sbt版本为0.13.8,而我本地安装的sbt版本是0.13.7,所以在仓库中找不到对应的0.13.8包
2.解决:在project中的build.properties中把版本号改成本地安装的版本即可,然后在idea工具栏/Build/make project重新重构一下项目
开发代码
在左侧的“ 项目”面板上,展开
SbtExampleProject
=>src
=>main
右键单击
scala
并选择New => Package为软件包命名,
example
然后单击“ 确定”。右键单击该包,
example
然后选择New => Scala class命名为 Hello 选择Object
运行成功
3、使用SCALATEST测试Scala
在build.sbt中引入依赖
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % "test"
等待依赖下载完成
在src
=> test
中选择New => Scala class
命名为CubeCalculatorTest
import org.scalatest.FunSuite
class CubeCalculatorTest extends FunSuite {
test("CubeCalculator.cube") {
assert(CubeCalculator.cube(3) === 27)
}
}
运行
四、通过命令行使用Sbt构建Scala
首先根据不同的系统安装Sbt
Windows下载地址为https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Windows.html
创建项目
打开cmd命令行
cd
到一个空文件夹
运行以下命令sbt new scala/hello-world.g8
。这将从GitHub中提取“ hello-world”模板。它还将创建一个target
文件夹
出现提示时,命名应用程序hello-world
。这将创建一个名为“ hello-world”的项目
查看一下生成的目录结构
- hello-world
- project (sbt uses this to install and manage plugins and dependencies)
- build.properties
- src
- main
- scala (All of your scala code goes here)
- Main.scala (Entry point of program) <-- this is all we need for now
- build.sbt (sbt's build definition file)
随后我们进入项目中 新建文件 输入sbt指令 进入后 run 执行项目
五、Scala Java同时运行
sbt是scala专属的 所以如果我们有scala和java代码同时执行的情况时
需要新建一个maven工程
pom文件写法如下:
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
<!--<scope>provided</scope>-->
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<!--maven 编译 -->
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!-- scala maven 混合开发-->
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
随后我们新建一个scala文件 然后maven打包
我们在target下边发现
可以通过 java -jar Hello.jar或者 scala Hello.jar 运行
至此我们Scala环境已经安装完成,推荐大家还是通过IDEA进行开发工作,不过原理也要理解,特别是部署上线时虽然也可以选择打成jar包 有的时候scala环境还是需要的 下一章 我们正式进入到Scala语法的学习中!
大数据流动 专注于大数据实时计算,数据治理,数据可视化等技术分享与实践。
请在后台回复关键字下载相关资料。相关学习交流群已经成立,欢迎加入~
Scala学习系列(二)——环境安装配置的更多相关文章
- appium学习笔记(环境安装配置,设备启动)
Android SDK下载及配置 下载地址 下载后解压缩,打开SDK Manager.exe,下载适当版本的Android包 配置环境变量:目录下的tools路径(含uiautomatorview ...
- Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
一.版本 linux系统:Ubuntu 14.04 (64位) 显卡:Nvidia K20c cuda: cuda_7.5.18_linux.run cudnn: cudnn-7.0-linux-x6 ...
- scala学习系列二
一 scala语言开发注意事项: 1 Scala程序的执行入口是main()函数 2 Scala语言严格区分大小写. 3 Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后 ...
- Hadoop 系列(二)安装配置
Hadoop 系列(二)安装配置 Hadoop 官网:http://hadoop.apache.or 一.Hadoop 安装 1.1 Hadoop 依赖的组件 JDK :从 Oracle 官网下载,设 ...
- 源码学习系列之SpringBoot自动配置(篇二)
源码学习系列之SpringBoot自动配置(篇二)之HttpEncodingAutoConfiguration 源码分析 继上一篇博客源码学习系列之SpringBoot自动配置(篇一)之后,本博客继续 ...
- PHP学习笔记----IIS7下安装配置php环境
原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...
- .net reactor 学习系列(二)---.net reactor界面各功能说明
原文:.net reactor 学习系列(二)---.net reactor界面各功能说明 安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.c ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- RabbitMQ学习系列二-C#代码发送消息
RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
随机推荐
- CSS 也能实现 if 判断?实现动态高度下的不同样式展现
最近在群里,有个小伙伴问了这么一道很有趣的问题: CSS 能否实现,容器再某个高度下是某种表现,一旦超出某个高度,则额外展示另外一些内容 为了简化实际效果,我们看这么一张示意效果图: 可以看到,当容器 ...
- 根据子节点ID获取结构树中该子节点的所有父节点ID
数据源: let adreeJson = [{ cat_id: 1, cat_name: '大家电', cat_pid: 0, cat_level: 0, cat_deleted: false, ch ...
- CentOS(7.6)环境下迁移Mysql(5.7)的data目录到指定位置
第一步:关闭Mysql #关闭Mysql服务systemctl stop mysqld#查看Mysql服务状态 ps -ef|grep mysql 第二步:创建新目录,并拷贝数据文件 #创建data文 ...
- [ARC165D] Substring Comparison
Problem Statement For an integer sequence $X=(X_1,X_2,\dots,X_n)$, let $X[L,R]$ denote the integer s ...
- tomact
常见的java相关的web服务器软件: *webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费. *webSphere:IBM公司,大型的JavaEE ...
- 记录一些JDK的新特性~持续更新
1.record快速定义类 @Test public void testRecord() { /** * JDK16新特性 * * @param start * @param end */ recor ...
- flask的cookie和session会话保持
Cookie 获取请求cookie 通过请求对象中的cookies属性可以获取cookie. 实例: from flask import Flask, request @app.route(" ...
- 华企盾DSC邮件服务器测试连接提示Bad login or password(账号密码错误)
解决方法:出现该提示说明账号和密码有一个填错了,注意:这里的密码不是邮箱本身的密码,是授权码,具体可以在邮箱设置中查看,而且必须开启smtp服务才能正常使用.
- 服务网格 Service Mesh
什么是服务网格? 服务网格是一个软件层,用于处理应用程序中服务之间的所有通信.该层由容器化微服务组成.随着应用程序的扩展和微服务数量的增加,监控服务的性能变得越来越困难.为了管理服务之间的连接,服务网 ...
- int和String的相互转换