码迷,mamicode.com
首页 > 编程语言 > 详细

[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

时间:2018-03-21 13:51:00      阅读:5246      评论:0      收藏:0      [点我收藏+]

标签:文件的   test   浏览器   新建   bsp   repo   而在   www.   apply   

[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

原文链接:http://www.cnblogs.com/blog5277/p/8615984.html

原文作者:博客园--曲高终和寡

 

点击下面菜单查看大数据入门全部教程

大数据从入门到放弃

网址:

http://www.cnblogs.com/blog5277/category/1179528.html

**********************************分割***********************************

其实按理说,Java项目是完全可以开发spark项目的,并不是一定需要scala来开发.

但是天不遂人愿,新项目里面用到了supermap的组件,他们的组件对scala支持的更好一点,就表现在,用scala的话,某函数的入口参数只有两个

技术分享图片

但是用java的话就有4个

技术分享图片

然后我还完全不知道这些参数指的是啥,

那没办法,只能换scala了(再加上spark就是基于scala开发的,技多不压身,学一学呗)

万万没想到,我在用IDEA在集成scala的时候,遇到了这么多坑(部分是因为我自己对scala的认知不够)

下面进入正题:

**********************************分割***********************************

一.下载IDEA的scala插件

1.个人推荐方式:

在IDEA-->设置-->插件-->搜索scala-->在仓库里找-->往下面翻一点,找到scala,看一下对应的版本号,记住这个版本号

技术分享图片

然后在:

http://plugins.jetbrains.com/plugin/1347-scala

去这里下载对应的版本(下载完的zip不要解压缩):

技术分享图片

经过非常非常漫长的下载....下载完了之后返回IDEA,在设置页面选择添加本地的插件:

技术分享图片

 选择你刚刚下载完的zip,添加,apply一下,确定就可以了,IDEA会提示你重启idea生效,你重启一下,插件就装完了.

 

2.不太推荐的方式...在idea-->设置-->插件-->搜索scala-->在仓库中搜索这里,其实可以直接安装的...

明明这么方便,我为啥不推荐呢...因为在国内,这个插件的下载速度也太慢了...还很容易失败(方法一也巨慢无比,但是毕竟是用浏览器/迅雷下的,不会失败,失败了也会断点续传),而在这里,极其容易失败...

开$$走PAC/全局代理/V屁N的方法我都试了,并不能加快下载速度,让人绝望...

 

二,开始scala的hello world

1.在项目上,右键,添加框架支持,选中出现的Scala

技术分享图片

2.(这一项是可选项,还是建议选的)在maven里加入scala相关的jar包和编译组件插件

这里引用了 菩提树下的杨过 大神的教程

https://www.cnblogs.com/yjmyzz/p/4694219.html

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.12.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-compiler -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-compiler</artifactId>
            <version>2.12.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-reflect -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-reflect</artifactId>
            <version>2.12.4</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>2.15.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3.在项目main下,和java同一级,新建个文件夹叫scala,你在这个文件下下就可以新建scala项目了

技术分享图片

4.这里介绍2种运行scala项目的方式,这里困扰了我好久...

5.用java方式调用

新建scala文件,用默认的方式建class文件,如下图:

技术分享图片

在新建出来的scala文件里面,按 command + j (windows下应该是alt吧...不行就试试ctrl),或者手动照着下面敲也可以

技术分享图片

输完后面的代码:

技术分享图片

这个时候你会发现你运行不了...:

技术分享图片

点它会出现控制台,然而这会你什么语法都不会..

所以没办法了,新建一个java文件来运行scala文件吧,可别忘了,scala也是jvm语言,再加上kotlin,这俩语言可是号称能和java项目"无缝衔接"的,scala项目当然能用java来运行了,如下图:

技术分享图片

就把scala当一个java的类去调就行了,还是很方便的...的....吧...

6.直接运行scala文件

然而scala其实也有自己的运行方式,这点在创建文件的时候你要选择,不要用默认的class,要用object...(或者你把上面的class改成object也可以)

技术分享图片

这样的话这里就有运行选项啦,注意区别,这里是object

技术分享图片

 

好了,今天就到这了

 

[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

标签:文件的   test   浏览器   新建   bsp   repo   而在   www.   apply   

原文地址:https://www.cnblogs.com/blog5277/p/8615984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!