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安装好之 ...
随机推荐
- 用AI打造一个属于自己的歌手,让她C位霸气出道
一.前言 今天玩儿点儿特别的,AI大行其道的今天,还没玩过AI模型的程序员绝对不是个好厨子.我本人比较喜欢音乐,但是一直没有出道,很是遗憾.那么今天,我就使用AI模型亲手打造一个堪比真人的歌手,让 ...
- 19. 从零开始编写一个类nginx工具, 配置数据的热更新原理及实现
wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现 ...
- Python 异常处理:try、except、else 和 finally 的使用指南
异常处理 当发生错误(或我们称之为异常)时,Python 通常会停止执行并生成错误消息. try 块用于测试一段代码是否存在错误. except 块用于处理错误. else 块用于在没有错误时执行代码 ...
- Vite4+Typescript+Vue3+Pinia 从零搭建(3) - vite配置
项目代码同步至码云 weiz-vue3-template 关于vite的详细配置可查看 vite官方文档,本文简单介绍vite的常用配置. 初始内容 项目初建后,vite.config.ts 的默认内 ...
- MySQL概述安装
一,数据库概述 1.为什么要使用数据库 将数据持久化. 持久化主要作用:是将内存中的数据库存储在关系型数据库中,本质也就是存储在磁盘文件中. 数据库在横向上的存储数据的条数,以及在纵向上存储数据的丰富 ...
- 计算机网络之防火墙和Wlan配置
一.防火墙 防火墙(firewall)是一种安全设备,它的位置一般处于企业网络边界与外网交界的地方,用于隔离不信任的数据包 准确点讲,它就是隔离外网和内网的一道屏障,用于保护内部资源信息安全的一种策略 ...
- 【教程】cpp转python Nanobind 实践 加速轻量版 pythonbind11
主要是尝试一下把c++这边的函数封装打包给python用,选择nanobind的原因是:1. 优化速度快,2. 生成二进制包小,不过pythonbind11是更为广泛知道的,nanobind也是pyt ...
- React 中事件处理
不要问自己需要什么样的人生,而要问自己想要成为什么样的人. 我们从前面的学习知道一个 React 组件不仅仅只包含 DOM 结构的,还应该样式和 Javascript 逻辑的.这里我们认识逻辑构造之事 ...
- OpenSSL 使用AES对文件加解密
AES(Advanced Encryption Standard)是一种对称加密算法,它是目前广泛使用的加密算法之一.AES算法是由美国国家标准与技术研究院(NIST)于2001年发布的,它取代了原先 ...
- 机密计算如何引领AI开发的安全未来
机密计算如何引领AI开发的安全未来 PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. 先进的AI模型比如机器学习和 ...