SCALA 开发环境准备

    做了好多尝试,最后放弃了ECLIPSE开发SCALA,决定用IDEA,当然激活码百度下即可以找到。

安装SCALA SDK:我是用的2.10.6,因为配合自己的集群scala版本而已,学习SCALA,随便安装个就好了。配置SCALA_HOME就可以了(可以百度下)。

如下图:

然后运行scala -version 就可以了,会java的和JAVA_HOME配置一样,而且简单。

效果图在下方:

为了JAR包依赖方便,咱们得用MAVEN,导入和build工程,手动导入jar的时代过去了,几十个jar万一版本搞错会死人的。当然工作环境遇到过网络要用代理,本来MAVEN可以配置代理访问,可是死活不行,没办法自己配置了个nexus的私服,然后设置代理访问阿里mavne库就可以了,nexus私服搭建有空总结吧。先把阿里MAVEN库地址贴出来吧,如下:

速度刷刷的。再也不用翻墙去国外网络了。

JDK自然要安装好,过于简单,这里不说了,可以百度吧。

idea安装: 一路NEXT最后启动就可以了。

至于建立maven的scala工程,参照了http://www.jianshu.com/p/ecc6eb298b8f的文章,写的很详细。我简单抄写到这里。并做些备注吧。

利用IntelliJ IDEA与Maven开始你的Scala之旅

一. IntelliJ IDEA安装及配置

1.1 IntelliJ IDEA下载及安装

首先在CHOOSE YOUR EDITION这里选择Community版本,这个版本是免费提供的,对我们的Spark使用来说,用这个版本已经足够了。如下图所示:

直接点击黑色的DOWNLOAD按钮会默认开始下载Windows版本的IntelliJ IDEA,如果需要其他平台的版本,可以点击旁边的.EXE,然后在打开的下拉菜单中,选择相应平台即可。


如果你下载了收费版,那么收费版激活码如下:

注册码有效期为2016年11月24日至2017年11月23日。

BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9XSwiaGFzaCI6IjQ3NzU1MTcvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-iygsIMXTVeSyYkUxAqpHmymrgwN5InkOfeRhhPIPa88FO9FRuZosIBTY18tflChACznk3qferT7iMGKm7pumDTR4FbVVlK/3n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==


下载完成后,双击得到的.exe文件,开始进行安装,其中所有选项按照默认的即可(其中有一个安装路径的配置,按照普通软件安装的方法自行设置即可,当然使用默认的路径也可以,记住这里的安装路径,后面要用到),一路点击Next,最后点击Finish按钮结束安装过程。

默认情况下,IntelliJ IDEA并不会在桌面上创建快捷键,我们可以去它的安装目录下的bin文件夹中,找到它的可执行.exe文件,我这里的bin文件夹路径是C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.2.1\bin,在该目录下,你可以找到两个如下的文件:

idea.exe//对应32位机器idea64.exe//对应64位机器

根据自己电脑是32位还是64位的,进行相应版本的选择,如果怕麻烦,建议在该文件上点击右键,然后选择发送到-->桌面快捷方式选项,这样以后在启动的时候,直接在桌面上双击快捷方式即可(如果是细心的读者,其实可以发现,在IDEA安装过程中,其中有一个步骤就是问:需不需要在桌面上创建快捷方式,默认下是不会创建的)。

选择好32位还是64位的文件后,然后双击运行IntelliJ IDEA,一般来说首次运行,都会碰到如下页面:

因为IntelliJ IDEA本身都会有一些配置文件,所以这里在询问是否需要导入一个配置文件,这里选择图中标示的选项即可,并点击OK。然后来到如下所示的UI主题选择界面,大多数使用IntelliJ IDEA的开发人员,一般都会毫无例外的选用第二个UI,这种灰黑色的主题简洁大方,给人一种深邃的质感,也确实是很多人选择IntelliJ IDEA的一个重要原因之一,用很多人的话说,写代码都能写出“高潮”来,是否属实,你们试试就知道了。

1.2 Scala插件的安装

后续的几个页面按照默认的配置即可,一直Next来到下面的界面。因为我们主要用Scala来写Spark程序,而IntelliJ IDEA需要使用Scala插件来支持Scala,安装方法如下图所示,首先点击Configure,然后点击下拉菜单中的Plugins。

随后打开的页面会显示出IntelliJ IDEA当前已安装的插件列表,现在我们要安装Scala插件,所以点击页面左下方的Install JetBrains plugin...按钮,然后来到安装插件的页面,如果网络正常的话,在页面左上方的搜索框内搜索"scala",即可出现Scala插件的安装界面,点击右侧页面中的Install进行安装后,可以看到安装的进度条,如下图所示:

但是如果你在公司内网,这个时候你可能需要配置代理,步骤如下图所示,在图中的Host name和Port number中填写公司自己的代理即可,如果需要,在下方的账号和密码框中按情况填写上相应信息。填写完毕,记得先检查一下是否能够正确连上外部网络,可以点击图中的Check connection,输入一个外网的地址,比如https://www.baidu.com/,测试一下代理是否正确配置了。一切正常后,点击OK退出即可。然后按照上一步中不需要配置代理的情况下,进行Scala插件的安装。

注意:插件安装完了之后,记得重启一下IntelliJ IDEA使得插件能够生效。

1.3 全局JDK和Library的设置

因为Scala代码的编写需要依赖JDK,并且以后编写Spark的程序,肯定会用到各种外部Jar包,如果自己手动去下载这些Jar包然后再引入项目,不仅费时费力,而且尤其在多人协作开发一个项目的时候,各种Jar包版本的管理将会变得非常混乱,因此,在这里建议:从一开始就习惯来用Maven对项目依赖到的Jar包进行理(后面会讲到Maven),然而在创建Maven工程的时候,首先便需要指定JDK。

因此为了后续创建Spark项目(正如上面所说,一方面是Scala本身需要依赖JDK,另一方面用来管理项目构建的Maven,其创建也需要依赖JDK)的时候不用每次都去配置JDK,这里先进行一次全局配置。首先在欢迎界面点击Configure,然后在Project Defaults的下拉菜单中选择Project Structure,如下图所示:

然后在打开的Default Project Structure界面的左侧边栏选择Project,在右侧打开的页面中创建一个新的JDK选项(一定要本机已经安装过JDK了),如下图所示步骤在下拉菜单中点击JDK后,在打开的对话框中选择你所安装JDK的位置,注意是JDK安装的根目录,不是bin文件夹的目录,如果你对上一篇文章中讲到的JAVA_HOME还很有印象的话,这里的目录就是JAVA_HOME中设置的目录。

这一步的全局Project JDK设置完毕后,回到欢迎页面。

除了要依赖JDK之外,Scala的编写肯定也离开不了自身的SDK(全称为Software Development Kit,即软件开发工具包。实际上,JDK就是Java的SDK),我们在IntelliJ IDEA编写Scala的程序的时候,比如要用到Scala自身提供的某个类,比如Seq(暂时不知道不要紧,后续文章会讲到),那IntelliJ IDEA到哪里去找这个Seq呢?只能去Scala自身提供的SDK里面去找,因此各种程序语言的软件开发者,是离不开这些语言的SDK的,Scala也自然不例外。而为了避免每次创建一个Scala工程的时候,都要去设置一遍Scala的SDK,这里做一些全局配置,主要是将Scala SDK引入到项目的Library中,并将其当做默认配置。

首先,在欢迎页面的右下角点击Configure,然后在Project Defaults的下拉菜单中选择Project Structure,在打开的页面左侧选择Global Libraries,然后在中间一栏中有一个绿色的加号标志+,点击后在下拉菜单中选择Scala SDK(如果没有的话,回顾上面的步骤,仔细观察一下是不是有哪些步骤错了,比如Scala的插件没安装成功,本机还未安装Scala,亦或者Scala的bin文件夹路径未能添加到系统的PATH环境变量中去等等),然后在打开的对话框中选择系统本身所安装的Scala(即System对应的版本),点击OK确定,这时候会在中间一栏位置处出现Scala的SDK,在其上右键点击后选择Copy to Project Libraries...,这个操作是为了将Scala SDK添加到项目的默认Library中去。整个流程如下面的动图所示。

二. 创建一个Maven工程

2.1 创建Maven工程

上面的安装和配置都完成后,现在可以开始创建一个Maven工程了。

在欢迎界面点击Create New Project,在打开的页面左侧边栏中,选择Maven,然后在右侧的Project SDK一项中,查看是否是正确的JDK配置项(如果每一步严格按照上文中的步骤操作的话,正常来说这一栏会自动填充的,因为我们之前在1.3中已经配置过了全局的Project JDK了,如果这里没有正常显示JDK的话,可以点击右侧的New...按钮,然后指定JDK安装路径的根目录即可),然后点击Next,来到Maven项目最重要三个参数的设置页面,这三个参数分别为:GroupId,ArtifactId和Version.

为了更好的解释这三个字段,用Spark 1.6.2的核心组件的Maven标识符为例来进行讲解。

org.apache.sparkspark-core_2.111.6.2

GroupId,可以理解为用来标志你整个项目组的,或者你这些代码属于某一个完整的项目,比如上面的org.apache.spark就可以非常好的来标志Apache的Spark这个项目了。一般来说可以使用倒序的公司网址来作为GroupId,这可以类比为,沿袭了Java项目中使用倒序公司网址来作为Package名称的一个惯例。

ArtifactId,一般是用来在整个项目组来标志本项目的,相比GroupId的范围,其概念要稍微小一些,比如spark-core_2.11就非常好的表示出了本项目主要是关于Spark的核心基础组件的,从而能够与Spark其他各种组件或架构很好的区分开来。

Version,正如字面意思,就是本项目的迭代版本的信息,如上面的1.6.2.

现在,比如你的公司名称叫做abc,然后你的项目组叫做test,那就可以使用com.abc.test来作为GroupId,然后将ArtifactId取做myFirstProject,版本号就使用它默认的就好了(当然,如果你的项目以后有迭代更新版本的话,这个是需要按照实际情况进行改动的)。这三个字段设置完毕后,点击Next,来到项目名称设置页面,一般可以和ArtifactId字段保持一致,当然也可以不一致,这个只是为了给本项目取个名字而已。

整个流程如下面的Gif动图所示。

2.2 属于你的"Hello World!"

在上一步中,我们已经创建了一个Maven工程,不出意外的话,这个时候会打开这个项目,并且首先映入眼帘的将是项目的pom.xml文件(暂时不清楚的不要紧,后面会讲到),细心如你,一定可以惊奇的发现pom文件中居然有我们刚才设置的GroupId,ArtifactId和Version这些信息(如下),这些信息相当于就给了本项目一个唯一的标识符,有了这个标识符,别人将会在浩如烟海的Maven仓库中,一眼识别到你(本段话有装B嫌疑,不懂的话请暂时忽略)。

com.abc.testmyFirstProject1.0-SNAPSHOT

好,现在开始要真正在这个Maven项目中创建一个属于自己的Scala程序了,在开干之前,为了给Scala营造一个顺利的环境,有几件事需要先做。下面我将分点罗列如下:

首先,为了让你的首次体验Scala更清爽一些,将一些暂时无关的文件和文件夹都勇敢的删除掉吧,主要有main\java,main\resources和test这三个;

将Scala的框架添加到这个项目中,方法是在左侧栏中的项目名称上右键菜单中点击Add Framework Support...,然后在打开的对话框左侧边栏中,勾选Scala前面的复选框,然后点击确定即可(前提是上文中所述步骤都已正确走通,否则你很有可能看不到Scala这个选项的);

在main文件夹中建立一个名为scala的文件夹,并右键点击scala文件夹,选择Make Directory as,然后选择Sources Root,这里主要意思是将scala文件夹标记为一个源文件的根目录,然后在其内的所有代码中的package,其路径就从这个根目录下开始算起。举个例子,假如你在scala文件夹中建立了一个程序,这个程序的package属性为com.abc.test,那么这个程序就一定要保存在scala\com\abc\test目录下,否则项目就找不到这个程序了;

在已经标记好为源文件根目录的scala文件夹 上,右键选择New,然后选择Scala Class,随后设置好程序的名称,并且记得将其设置为一个Object(类似于Java中含有静态成员的静态类),正常的话,将会打开这个Object代码界面,并且可以看到IntelliJ IDEA自动添加了一些最基本的信息;

在创建的Object中输入如下语句:

defmain(args:Array[String]):Unit= {println("Hello World!")}

在程序界面的任意位置,右键单击后选择Run '你的程序名称',静待程序的编译和运行,然后在下方自动打开的窗口中,你就可以看到振奋人心的Hello World!了。

整个流程的Gif动图已经做好,双手奉上。

pom 的配置,涉及到打包的,贴在这里仅供参考:


idea 的maven的build在工具窗体的右侧如下图


如果使用工具自带的mvn install:install 会有问题,具体没查原因,手动输入命令运行好了


三. 小结

至此,整个的IntelliJ IDEA安装与配置,以及基本的Maven工程创建流程,就全然结束了,写的比较啰嗦,一个很简单的IDE使用问题,嚼了这么多口舌,不过啰嗦之外,若果真对各位好学的你们,有稍稍的竟然之外的益处,那也就不枉我这么苦逼的制作这些Gif动图了。

此外,本文只介绍了一些最基本的内容,关于IntelliJ IDEA和Maven的更为细致的内容,以及关于如何在本地写一个Spark程序都还没有提到,不着急,后续我会慢慢更新。


文章抄写完毕,省了自己很多事情。下面就可以开始学习SCALA这种,神奇的语言了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容