---------------------
前言
---------------------
项目关系,希望用Spark GraphX做数据分析及图像展示,但前提是得回spark;spark是基于scala的,scala是基于JAVA的……所以,要想用Spark GraphX,技术堆栈大体上应该是这样的:Java -> Scala -> Spark -> Spark GraphX。
 
JAVA都这么多年了……就不说了,我们从学习Scala开始。
 
 
--------------------
前提
--------------------
1)Java配置完成,版本在1.8以上;
因为Scala是基于Java开发的,编译之后生成的class文件也可以远行在JVM上,并被Java调用。
2)IntelliJ IDEA已安装完成(我的版本是:2017.2.2)。
 
 
--------------------
安装Scala
--------------------
1. 安装Scala插件
依次:IntelliJ IDEA -> Preferences -> Plugins -> Browse repositories...
 
1)在搜索框输入scala
2)在列表中选择Scala
3)点击右侧框的“Install”按钮(下图是安装完成之后的样子)
 
 
2. 安装Scala SDK
网上说的是先到http://www.scala-lang.org/download/ 下载压缩包,在本地解压,IDEA就可以自动识别了。(详细参考:https://www.cnblogs.com/yjmyzz/p/4694219.html
 
而我用的是另一个方法(有点儿笨,有点儿捉急了……):
1)在没有安装SDK的情况下,直接先创建了一个Scala项目(创建项目的步骤下面有说明),
2)打开Hello.scala文件的时候,IDEA会在编辑器的右上角提示:Setup Scala SDK
点击链接,在弹出框中,根据提示:
-> download SDK(等待时间比较久……)
-> 选择版本(我的是2.12.4)
-> STB最后自动更新一些jar包(又是一段时间的等待……)
 
在安装过程中,右下角的EventLog栏里会有STB的提示,建议选择“Auto-Import”。
 
 
--------------------
创建项目、运行 — 经典的HelloWorld
--------------------
1. 创建项目
1)Create New Project(或:File -> New -> Project);
2)在左侧框选择“Scala” -> 在右侧框再次选择“Scala”,没有Scala则选择SBT,点击下一步;
3)在Name里输入:HelloWorld
在Location里选择自己想要存工程的路径,点击finish
 
创建出来的Scala项目的路径结构大概是这个样子的:
 
目录scala是我们下代码的地方
目录test是些单元测试的代码的地方(后面会有详细说明)
貌似还应该有个跟scala并列的java目录,但是在我的项目里没有……
 
 
2. 写代码
在工程目录src/main/scala上,右键单击,选择:New -> Scala Script
(我第一次创建文件的时候并没有安装Scala SDK,所以没有这个文件类型,只好选择File……)
输入文件名:Hello.scala
 
输入代码:
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}
 
3. 运行配置
在Edit Configurations...里添加一项SBT:
 
在SBT Task下新增一项,输入:
Name:run scala helloworld
Tasks: ~run ('~'符号,用来触发SBT编译并运行项目)
保存退出。
 
点击“运行”按钮,在控制台输入运行结果:
 
[info] Loading settings from plugins.sbt ...
[info] Loading project definition from /Users/yp-tc-m-2755/Documents/devopement/scala/hellowold/project
[info] Loading settings from build.sbt ...
[info] Set current project to hellowold (in build file:/Users/yp-tc-m-2755/Documents/devopement/scala/hellowold/)
[info] Updating ...
[info] Done updating.
[info] Compiling 1 Scala source to /Users/yp-tc-m-2755/Documents/devopement/scala/hellowold/target/scala-2.12/classes ...
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.4. Compiling...
[info] Compilation completed in 12.446s.
[info] Done compiling.
[info] Packaging /Users/yp-tc-m-2755/Documents/devopement/scala/hellowold/target/scala-2.12/hellowold_2.12-0.1.jar ...
[info] Done packaging.
[info] Running HelloWorld
Hello, world!
[success] Total time: 22 s, completed 2018-2-6 18:55:20
 
 
--------------------
遗留问题
--------------------
在build.sbt里的所有关键字都是红的,提示:Cannot resolve symbol
虽然不影响运行,但是这样就不能在这里添加依赖了。比如,单元测试的依赖:
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"
 
https://stackoverflow.com上面找到一些方法,但是对我都不起作用,求大神指教。
 
 
 
 
--------------------
参考
--------------------
1)在线教程:
2)scala intellij idea 环境搭建及编译:
3)GETTING STARTED WITH SCALA IN INTELLIJ
4)Installing, Updating and Uninstalling Repository Plugins
5)TESTING SCALA IN INTELLIJ WITH SCALATEST
 
 
 
 
 
 
 

Scala & IntelliJ IDEA:环境搭建、helloworld的更多相关文章

  1. Scala & IntelliJ IDEA环境搭建升级版:在JAVA中调用Scala的helloworld

    --------------------- 前言 --------------------- 项目关系,希望用Spark GraphX做数据分析及图像展示,但前提是得会spark:spark是基于sc ...

  2. scala + intellij idea 环境搭建及编译、打包

    大数据生态圈中风头正旺的Spark项目完全是采用Scala语言开发的,不懂Scala的话,基本上就没法玩下去了.Scala与Java编译后的class均可以运行于JVM之上,就好象.NET中F#与C# ...

  3. scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...

  4. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  5. Scala进阶之路-为什么要学习Scala以及开发环境搭建

    Scala进阶之路-为什么要学习Scala以及开发环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近人工智能和大数据那是相当的火呀,人工智能带动了Python的流行,区块 ...

  6. Cordova环境搭建 & HelloWorld

    目前的手机APP有三类:原生APP,WebAPP,HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Cordova就是一个中间件,让我们把WebAPP打包成Hybrid ...

  7. jni 入门 android的C编程之旅 --->环境搭建&&helloworld

    需要进行jni的开发有一下几个条件: 1:能初步使用C/C++如果不会,请参读 谭浩强的  C编程语言 2:android应用开发已经基本入门,如果没有,请先行学习 这两个条件基本满足后,我们开始了: ...

  8. Windows下Eclipse+Scala+Spark开发环境搭建

    1.安装JDK及配置java环境变量 本文使用版本为jdk1.7.0_79,过程略 2.安装scala 本文使用版本为2.11.8,过程略 3.安装spark 本文使用版本为spark-2.0.1-b ...

  9. scala+hadoop+spark环境搭建

    一.JDK环境构建 在指定用户的根目录下编辑.bashrc文件,添加如下部分: # .bashrc # Source global definitions if [ -f /etc/bashrc ]; ...

  10. IntelliJ Idea 环境搭建

    安装IntelliJ Idea 可以去官网下载: https://www.jetbrains.com/idea/download/#section=windows 选择Ultimate.一路下一步安装 ...

随机推荐

  1. @EnableAsync和@Async开始异步任务支持

    Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.在开发中实现异步任务,我们 ...

  2. zynq+linux+ramdisk can调试

    由于采用ramdisk文件系统,自带的ip工具版本太旧无法配置can,需要自行编译ip,具体参见参考文献2 1.vivado配置ps 2.设备树增加can0,一般开发板均已提供此配置 can@e000 ...

  3. iOS开发 - Quartz2D画图

    Quartz 2D简单介绍 是一个二维画图引擎,同一时候支持iOS和Mac系统 Quartz 2D能完毕的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成 ...

  4. Django 学习笔记(二) 《models》

    python 2.7.6 Django1.8.3 IDE eclipse+pydev Django开发的模式就是MTV(c)模式(model. template, view(urls)). 对于mod ...

  5. 使用maven进行测试设置断点调试的方法

    在Maven中配置测试插件surefire来进行单元测试,默认情况下,surefire会执行文件名以Test开头或结尾的测试用例,或者是以TestCase结尾的测试用例.               ...

  6. stm32的DMA重新工作

    下面是在战舰V3寄存器程序例子中找到的: //开启一次DMA传输void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx){    DMA_CHx->CCR&a ...

  7. php实现用短路求值原理求1+2+3+...+n(短路求值是什么)(仔细分析题干)

    php实现用短路求值原理求1+2+3+...+n(短路求值是什么)(仔细分析题干) 一.总结 1.仔细分析题干,找出要点:该递归还是得递归啊 2.短路求值原理:&&就是逻辑与,逻辑与有 ...

  8. java之Thread.sleep(long)与object.wait()/object.wait(long)的区别及相关概念梳理(good)

    一.Thread.sleep(long)与object.wait()/object.wait(long)的区别sleep(long)与wait()/wait(long)行为上有些类似,主要区别如下:1 ...

  9. php随机字符串

    <?php class RandChar{ function getRandChar($length){ $str = null; $strPol = "ABCDEFGHIJKLMNO ...

  10. jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强)

    jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强) 一.总结 一句话总结:多看参考文档,多看主干目录.一般的功能分两个方法来实现,一个对应标签,一个对应标签和事情,比如克隆 ...