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

安装

创建

打开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重新重构一下项目

开发代码
  1. 在左侧的“ 项目”面板上,展开SbtExampleProject=> src =>main

  2. 右键单击scala并选择New => Package

  3. 为软件包命名,example然后单击“ 确定”

  4. 右键单击该包,example然后选择New => Scala class

  5. 命名为 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学习系列(二)——环境安装配置的更多相关文章

  1. appium学习笔记(环境安装配置,设备启动)

      Android SDK下载及配置 下载地址 下载后解压缩,打开SDK Manager.exe,下载适当版本的Android包 配置环境变量:目录下的tools路径(含uiautomatorview ...

  2. 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 ...

  3. scala学习系列二

    一 scala语言开发注意事项: 1 Scala程序的执行入口是main()函数 2 Scala语言严格区分大小写. 3 Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后 ...

  4. Hadoop 系列(二)安装配置

    Hadoop 系列(二)安装配置 Hadoop 官网:http://hadoop.apache.or 一.Hadoop 安装 1.1 Hadoop 依赖的组件 JDK :从 Oracle 官网下载,设 ...

  5. 源码学习系列之SpringBoot自动配置(篇二)

    源码学习系列之SpringBoot自动配置(篇二)之HttpEncodingAutoConfiguration 源码分析 继上一篇博客源码学习系列之SpringBoot自动配置(篇一)之后,本博客继续 ...

  6. PHP学习笔记----IIS7下安装配置php环境

    原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...

  7. .net reactor 学习系列(二)---.net reactor界面各功能说明

    原文:.net reactor 学习系列(二)---.net reactor界面各功能说明         安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.c ...

  8. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  9. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  10. java基础学习总结——java环境变量配置(转)

    只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...

随机推荐

  1. keycloak~为keycloak-services项目添加第三方模块(首创)

    我们在对keycloak框架中的核心项目keycloak-services进行二次开发过程中,发现了一个问题,当时有这种需求,在keycloak-services中需要使用infinispan缓存,我 ...

  2. Linux运维技能图谱

    前言 该技能图谱依个人经验绘制,不适用于所有运维岗位.对于刚入行的从业者,也不需要按照图谱全学一遍,应该根据岗位工作内容来学习.有些技术我也不会,但作为一个选项我也写进去了,比如容器运行时有Docke ...

  3. java泛型<? extends E>和<? super E>的区别和适用场景

    <? extends E>是Upper Bound(上限)的通配符,用来限制元素类型的上限,如: List<? extends Fruit> fruits; 表示集合中的元素的 ...

  4. Mysql报:error while loading shared libraries libtinfo.so.5的解决办法

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin #.今天闲来无事,想在Anolis8的系统上装一个MySQL8.0玩.前期在安装和配置的过程中没有什么问题,但是在我想 ...

  5. Java数组最常用操作方法(Arrays类)

    最近在写代码的过程中发现我们很多地方都会处理数组,有时只是模糊的记得有API可以调用,每次都查文档很是费事儿,适当的总结希望提高开发速度 一.申明数组 数组的申明十分简单也十分的基础,注意第三种申明方 ...

  6. 海上液化天然气 LNG 终端 | 图扑数字孪生

    关于 LNG 液化天然气 (Liquefied Natural Gas,简称 LNG) 在能源转型过程中被广泛认可为相对较清洁的能源选择. 相对于传统的煤炭和石油燃料,LNG 的燃烧过程产生的二氧化碳 ...

  7. 生物电势测量ECG

    参考来源:ADI官网技术文章.知乎(hxl695822705.KingPo-张超.津发科技.木森.深圳加1健康科技) ECG的产生 ECG(Electrocardiogram)心电测量,是指人体内窦房 ...

  8. CortexM外设:NVIC 嵌套向量中断控制器

    优先级分组Priority Group 使能Enabled 抢占优先级Preemption Priority 子优先级Sub Priority 外部中断线 EXTI Line 定时器中断 TIM1 u ...

  9. 2023年的PHP项目部署笔记。什么?还有人用PHP?

    前言 这是我第一次用 PHP 的包管理工具 composer 一开始用 docker 进行部署,但一直出问题,最后还是选择直接在服务器上安装 php-fpm 搭配 nginx 的方案了. PS:doc ...

  10. 【Python】【OpenCV】凸轮廓和Douglas-Peucker算法

    针对遇到的各种复杂形状的主体,大多情况下,我们可以求得一个近似的多边形来简化视觉图像处理,因为多边形是由直线组成的,这样就可以准确的划分区域来便捷后续的操作. cv2.arcLength() Meth ...