Scala学习系列(二)——环境安装配置

简介: Scala学习系列(二)——环境安装配置

Scala下载地址:https://www.scala-lang.org/download/


一、安装JDK


首先,因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK


二、二进制安装方式


我们可以直接用二进制安装Scala 还是下载网址

微信图片_20220526230353.jpg

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进入

微信图片_20220526230356.png


三、通过Sbt安装Scala


官网推荐通过Sbt安装Scala ,Scala's build tool

1、使用IDEA安装Scala

安装

微信图片_20220526230403.png

创建

打开IntelliJ并单击File => New => Project

微信图片_20220526230406.png微信图片_20220526230409.jpg

在左侧面板上,选择Scala。在右侧面板上,选择“ IDEA”。

微信图片_20220526230409.jpg

将该项目命名为scala-demo

假设这是您第一次使用IntelliJ创建Scala项目,则需要安装Scala SDK。在Scala SDK字段的右侧,单击“ 创建”按钮

选择版本号,然后单击“ 下载”。这可能需要几分钟,但是以后就不用下载了

创建SDK后,您将返回“新建项目”窗口,点击完成

编写代码

在左侧的Project窗格中,右键单击src并选择 New => Scala class

微信图片_20220526230413.png

命名为Hello 类型为Object

微信图片_20220526230416.jpg

编写代码

微信图片_20220526230434.jpg

运行

直接点击剪头或者右键选择Run'Hello'

微信图片_20220526230422.png

成功!

微信图片_20220526230425.jpg

测试

在左侧的项目窗格中,右键单击 src并选择New => Scala Worksheet

微信图片_20220526230428.png

点击运行 成功!

微信图片_20220526230431.jpg

2、使用IDEA SBT开发Scala

上面我们通过Idea安装并运行了Scala的程序 我们已经可以在IDEA中开发Scala了!我们平时的练习与测试完全可以进行了

但是在构建工程时,需要对包版本进行管理,我们最好在IDEA中构建一个标准的Sbt项目

创建

请打开IntelliJ并选择“ Create New Project”

  • 在左侧面板上,选择Scala,在右侧面板上,选择sbt
  • 点击下一步
  • 将项目命名为“ SbtExampleProject”

微信图片_20220526230434.jpg

确保JDK版本为1.8,sbt版本至少为0.13.13

微信图片_20220526230437.jpg

了解目录结构

sbt为我们创建了目录结构

这些都很有用 都是sbt的基本结构

build.properties里记录了sbt.version

build.sbt里记录了 项目名 scalaVersion 等信息 以后我们添加依赖也是在这里

未来我们会仔细介绍

微信图片_20220526230441.jpg

如果项目构建不成功 注意查看本机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

运行成功

微信图片_20220526230443.jpg

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打包

微信图片_20220526230446.png

我们在target下边发现

微信图片_20220526230451.png

可以通过 java -jar Hello.jar或者 scala Hello.jar 运行

至此我们Scala环境已经安装完成,推荐大家还是通过IDEA进行开发工作,不过原理也要理解,特别是部署上线时虽然也可以选择打成jar包 有的时候scala环境还是需要的 下一章 我们正式进入到Scala语法的学习中!

相关文章
|
2月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
50 5
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
7月前
|
Scala 容器
Scala学习--day04--集合、常用方法、案例实操 - WordCount TopN、不同省份的商品点击排行
Scala学习--day04--集合、常用方法、案例实操 - WordCount TopN、不同省份的商品点击排行
108 2
|
7月前
|
消息中间件 分布式计算 大数据
Scala学习--day03--函数式编程
Scala学习--day03--函数式编程
102 2
|
7月前
|
Java Scala
Scala学习--day02---控制流、“九层妖塔—杨辉三角”
Scala学习--day02---控制流、“九层妖塔—杨辉三角”
194 1
|
7月前
|
Java 编译器 API
Scala学习--day01变量与数据类型、运算符
Scala学习--day01变量与数据类型、运算符
|
消息中间件 运维 数据可视化
【Kafka】基于Windows环境的Kafka有关环境(scala+zookeeper+kafka+可视化工具)搭建、以及使用.NET环境开发的案例代码与演示
基于Windows系统下的Kafka环境搭建;以及使用.NET 6环境进行开发简单的生产者与消费者的演示。
562 0
【Kafka】基于Windows环境的Kafka有关环境(scala+zookeeper+kafka+可视化工具)搭建、以及使用.NET环境开发的案例代码与演示
|
Java 编译器 Scala
Mac VSCode 搭建 Scala 环境跑通 hello world
Mac VSCode 搭建 Scala 环境跑通 hello world
Mac VSCode 搭建 Scala 环境跑通 hello world
|
存储 算法 Java
Scala学习三-面向对象
前面我们已经学习了特质类似接口,其可以被继承,同时如果需要继承多个特质的话,则需要使用extends…with…进行继承。其类似java中的接口和抽象方法的结合体,但又比java中的其要强大,因为其可以定义抽象字段和普通字段、抽象方法和普通方法。而在java中接口中可以定义常量,不能定义变量。同时特质还可以继承class类,而在java中接口通常是用来实现的。 Object继承trait
136 0
Scala学习三-面向对象
下一篇
无影云桌面