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


    file

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

    file

    一、安装JDK

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

    二、二进制安装方式

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

    file

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

    file

    三、通过Sbt安装Scala

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

    1、使用IDEA安装Scala

    安装

    file

    创建

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

    file

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

    file

    将该项目命名为scala-demo

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

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

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

    编写代码

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

    file

    命名为Hello 类型为Object

    file

    编写代码

    file

    运行

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

    file

    成功!

    file

    测试

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

    file

    点击运行 成功!

    file

    2、使用IDEA SBT开发Scala

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

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

    创建

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

    • 在左侧面板上,选择Scala,在右侧面板上,选择sbt

    • 点击下一步

    • 将项目命名为“ SbtExampleProject”

    file

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

    file

    了解目录结构

    sbt为我们创建了目录结构

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

    build.properties里记录了sbt.version

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

    未来我们会仔细介绍

    file

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

    运行成功

    file

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

    file

    我们在target下边发现

    file

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

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

    更多大数据,实时计算相关博文与科技资讯,欢迎搜索或者扫描下方关注 “实时流式计算”

    file

    本文由博客一文多发平台 OpenWrite 发布!

  • 相关阅读:
    bShare一个强大的网页分享插件
    免费软件,到底是谁在获益?
    波西的小球——优化日志
    CSDN无故删除东西,强烈抗议 枯木
    网站排障分析常用的命令 枯木
    KVM在线迁移(动态迁移) 枯木
    RHEL6 KVM安装备忘 枯木
    MySQL备份和恢复具体实施(上) 枯木
    Nginx支持php相关配置 枯木
    关于RHEL6中ulimit的nproc限制 枯木
  • 原文地址:https://www.cnblogs.com/tree1123/p/12689313.html
Copyright © 2020-2023  润新知