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安装好之 ...
随机推荐
- Python 利用pandas和matplotlib绘制双柱状图
在数据分析和可视化中,常用的一种图形类型是柱状图.柱状图能够清晰地展示不同分类变量的数值,并支持多组数据进行对比.本篇文章将介绍如何使用Python绘制双柱状图. 准备工作 在开始绘制柱状图之前,需要 ...
- 数据结构与算法 | 记忆化搜索(Memorize Search)
在本系列的文章中已经写了二叉树(Binary Tree).深搜(DFS)与广搜(BFS).哈希表(Hash Table)等等,计划接下来要写的是动态规划(Dynamic Programming,DP) ...
- Vue 2.x源码学习:render方法、模板解析和依赖收集
内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 之前的相关学习笔记: 应 ...
- Educational Codeforces Round 103 (Rated for Div. 2) A~D题解
写在前边 链接:Educational Codeforces Round 103 (Rated for Div. 2) A. K-divisible Sum 链接:A题链接 题目大意: 要求构造一个\ ...
- springboot集成mybatis-plus
集成mybatis-plus 1.添加pom.xml <!--mp逆向工程 --> <dependency> <groupId>org.projectlombok& ...
- 【JSOI2008】火星人 (哈希+Splay)
题目 这种含有修改操作的就难以用后缀数组实现了,求LCP这种区间相等的类型可以想到用hash判断,同时LCP的答案大小符合二分条件可以二分求出,如果只有修改可以用线段树维护,因为还有有插入操作所以想到 ...
- 为什么MySQL不建议使用delete删除数据?
MySQL并不直接建议禁止使用DELETE语句删除数据,但是在某些情况下,使用DELETE可能会带来一些潜在的问题,特别是在大型数据库中. 下面我将详细介绍为什么在某些情况下MySQL不建议过度使用D ...
- 30分钟带你精通git使用
非常抱歉,由于篇幅和时间限制,无法在30分钟内提供3000字左右的详细git使用介绍. Git是一个强大的版本控制系统,学习使用它需要一定的时间和实践.以下是一个简要的Git使用指南,帮助您入门并进行 ...
- MAUI+Masa Blazor APP 各大商店新手发布指南-华为篇
目录 前言 准备材料 一.企业认证 二.审核资料 审核注意事项 总结 前言 AppGallery Connect(简称AGC)是华为应用市场推出的应用一站式服务平台,致力于为开发者提供应用创意.开发. ...
- Socket是什么/怎么理解Socket
Socket 先来看一下百度百科对于Socket的介绍:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O ...