关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

云南大王-Scala学习系列(二)——环境安装配置

发布时间:2020-04-13 00:00:00
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文件写法如下: org.scala-lang scala-library ${scala.version} org.apache.maven.plugins maven-compiler-plugin 3.6.1 1.8 1.8 net.alchim31.maven scala-maven-plugin 3.2.2 compile testCompile org.apache.maven.plugins maven-assembly-plugin 3.0.0 make-assembly package single 随后我们新建一个scala文件 然后maven打包 我们在target下边发现 可以通过 java -jar Hello.jar或者 scala Hello.jar 运行 至此我们Scala环境已经安装完成,推荐大家还是通过IDEA进行开发工作,不过原理也要理解,特别是部署上线时虽然也可以选择打成jar包 有的时候scala环境还是需要的 下一章 我们正式进入到Scala语法的学习中! 更多大数据,实时计算相关博文与科技资讯,欢迎搜索或者扫描下方关注 “实时流式计算” 本文由博客一文多发平台 OpenWrite 发布!

相关阅读

centos7系统中忘记了root管理员账号密码的解决方式公司管理必须的20条军规[参考]云南昆明天猫旗舰店如何开_怎么开_要什么条件云南大王-通俗理解spring源码(三)—— 获取xml的验证模式 云南大王-用户登录 云南大王-【Golang进阶】指针的详细讲解 云南大王-Java 单线程代码ThreadLocal串值问题 云南大王-Java 实例级别的锁和类级别的锁 云南大王-工作流引擎会签,加签,主持人,组长模式专题讲解 云南大王-Android连载5云南大王-NTP对时器(NTP对时服务器)重要性!京准电子科技 云南大王-关于redis单线程的分析 云南大王-CVE云南大王-PHP SESSION反序列化本地样例分析 云南大王-这不就是多线程ThreadPoolExecutor和阻塞队列吗 云南大王-Tomcat AJP 文件包含漏洞(CVE云南大王-讲真,这两款idea插件,能治愈你英语不好的病 云南大王-消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型? 云南大王-JVM系列十三(类加载器). 云南大王-Win10安装MySQL8压缩包版 云南大王-初始WebApi(2) 云南大王-初识人工智能(二):机器学习(一):sklearn特征抽取 云南大王-Popup中ListBox的SelectChange事件关闭弹出窗体后主窗体点击无效BUG 云南大王-基础知识记录 云南大王-FastDFS搭建图片服务器 云南大王-git/sourcetree解决本地仓库历史合并到线上仓的历史数据合并问题_refusing to merge unrelated histories 云南大王-js判断字符是否在数组中【转】 云南大王-Python 云南大王-面向对象之多线程(可捎带电梯调度) 云南大王-Python练习题2.5求奇数分之一序列前N项和(存在问题) 云南大王-React 中的前端路由 react云南大王-VSCODE 远程开发树莓派 云南大王-React新闻网站云南大王-vs .net CS0006 C# 未能找到元数据文件 .dll 云南大王-Vue.js 技术揭秘 云南大王-流程控制语句云南大王-Python学习笔记:Python的时间操作(time,datetime,timedelta,calendar) 云南大王-流程控制语句云南大王-golang Gin framework with websocket 云南大王-多重判断if..else嵌套语句 云南大王-用户登录 云南大王-流程控制语句云南大王-密码类 云南大王-Unity2018发布WebGL注意事项总结 云南大王-web系统安全运营之基础云南大王- 流程控制语句云南大王-中型WPF客户端开发项目总结(3.3.4) 云南大王-流程控制语句云南大王-流程控制语句云南大王-流程控制语句云南大王-中型WPF客户端开发项目总结(4) 云南大王-流程控制语句云南大王-ASP.NET Core笔记(4) 云南大王-C# 基础知识系列云南大王-让 .NET 轻松构建中间件模式代码(二) 云南大王-基于 HTML5 WebGL 的 水泥工厂可视化系统 云南大王-.NET Core 3 WPF MVVM框架 Prism系列之导航系统 云南大王-《JavaScript异步编程》精读笔记 云南大王-合理使用CSS框架,加速UI设计进程 云南大王-CLSID 为 {000209FF云南大王-从零基础转行到前端大牛,需要经过哪几个阶段? 云南大王-一个简单的例子看明白 async await Task 云南大王-【目前】宇宙第一IDE Visual Studio 合并压缩css、js扩展组件云南大王-写一个通用的List集合导出excel的通用方法 云南大王-Bootstrap4 按钮组+徽章(Badges)+进度条+分页+列表组 云南大王-Web前端工程师需要学些什么? 云南大王-react嵌套路由 云南大王-【java框架】Struts2(2) 云南大王-javaSE笔记云南大王-.net core 集成 sentry 进行异常报警 云南大王-Java の 四种引用 云南大王-JVM 虚拟机&&类加载(一) 云南大王-使用Fastjson实现JSON与JavaBean之间互相转换 云南大王-Python操作Oracle数据库:cx_Oracle 云南大王-为什么要用内插字符串代替string.format 云南大王-作为字节跳动的面试官,有些话我不得不说! 云南大王-微信公众号自定义菜单与启用服务器配置冲突(图文消息、链接及文本回复) 云南大王-C#队列学习笔记:RabbitMQ延迟队列 云南大王-Disruptor 基础篇 云南大王-C#获取设备(Audio和Video)名称 简单整理 云南大王-基于注解的IOC配置 云南大王-C#调用EnumDevice获取设备信息 云南大王-Jenkins基础系统之更换镜像源 云南大王-Jenkins基础系统之完整的.net项目编译 云南大王-Scala学习系列(二)——环境安装配置 云南大王-WinForm中DataGridView复制选中单元格内容解决方案 云南大王-关键词匹配优化(第0篇)—— 问题和思路 云南大王-ASP.NET CORE WEBAPI文件下载 云南大王-GC垃圾回收器 云南大王-多线程之旅(Task 任务) 云南大王-当模板方法遇到了委托函数,你的代码又可以精简了 云南大王-基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇) 云南大王-关键词匹配优化(第1篇)—— 测试计算过程 云南大王-原理解密 → Spring AOP 实现动态数据源(读写分离),底层原理是什么 云南大王-Navicat 密码加密算法 云南大王-【WPF学习】第六十六章 支持可视化状态 云南大王-composer安装 windows 云南大王-ASP.NET Core中的Controller 云南大王-HttpClient来自官方的JSON扩展方法 云南大王-Python3标准库:http.cookies HTTP cookie
/template/Home/Zkeys/PC/Static