Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情

在进行本地Scala环境配置时,需要完成以下几个步骤:

1、安装JDK,目前仅支持1.8版本;

2、安装Scala,并配置对应的环境变量;

3、安装Spark,并配置对应的环境变量;

4、安装Intellij,并下载对应的scala plugin。

详细可见:

https://blog.csdn.net/u011513853/article/details/52865076(Windows)

https://blog.csdn.net/u010171031/article/details/51849562 (Linux:Ubuntu )

在所有的环境变量配置好以后,应当在cmd下(或者Ubuntu的终端下)进行测试:

java -version

scala -version

spark-shell

如果安装完好的话应当由对应信息提示

在完成环境配置以后,就可以新建Intellij的project,在此强烈建议使用maven进行任务创建,不推荐sbt或者直接scala格式,主要由于maven是一个非常方便的中央仓库,第一次使用的时候会觉得有点奇怪,但一旦尝试成功会发现这是一个非常方便的工具,并且其内置的package程序可以非常方便的用于scala文件打包。

以下,笔者一步步对工程构建及程序打包进行说明:

1、打开Intellij,新增project,选择maven,并点击下一步(暂时不用Create from archetype)

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第1张图片

2、填写GroupId、ArtifactId、Version,这三个都是为了对project进行分类,实际上与Apache项目的建立是类似的,以笔者为例,假设我是大鱼公司(bigfish.com),目前要建造一个用于spark机器学习的项目(spark_ml),依次点击下一步即可。

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第2张图片

3、右键spark_ml,Add FrameWork Support,选择scala,也就是把scala增加到了项目中

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第3张图片

4、增加scala的libraries:点击File ,Project Structure,将Global libraries中的scala sdk复制到上面的libraries,这些工作都是为了使得intellij能够作为scala的编辑器,并且能够新增scala 的class文件,因为intellij最初是默认用于java的

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第4张图片

 

 

5、在src的main文件下新增scala文件夹(Mark as Sources Root),test下新增scala文件(Mark as Test Root),新增的scala文件就放在main下面的scala文件夹中

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第5张图片

6、在src/main/scala下新增scala class,并选择为Object,本处起名叫HelloSpark

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第6张图片

7、在HelloSpark下加入以下内容,这已经是一个完整的scala对象,run以后会打印出“Hello Spark”

object HelloSpark {
  def main(args:Array[String]):Unit= {
    println("Hello Spark")
  }
}

8、接下来就可以尝试打包了,此时能够打包,但是打包以后的jar文件在运行后会提示没有主类,主要是由于maven的打包文件还未配置好,在pom.xml文件中增加以下内容,这个主要用于使得maven的打包程序有效,需要注意这一句(HelloSpark ),不同的project需要修改对应的mainClass


    1.7
    1.7
    UTF-8
    2.11.8
    2.11



    
    src/main/scala
    src/test/scala
    
    
        
            net.alchim31.maven
            scala-maven-plugin
            3.2.2
            
                
                    
                        compile
                        testCompile
                    
                    
                        
                            
                            -dependencyfile
                            ${project.build.directory}/.scala_dependencies
                        
                    
                
            
        

        
        
            org.apache.maven.plugins
            maven-shade-plugin
            2.4.3
            
                
                    package
                    
                        shade
                    
                    
                        
                            
                                *:*
                                
                                    META-INF/*.SF
                                    META-INF/*.DSA
                                    META-INF/*.RSA
                                
                            
                        
                        
                            
                                reference.conf
                            
                            
                                HelloSpark 
                            
                        
                    
                
            
        
    


    
        org.scala-lang
        scala-library
        ${scala.version}
    

9、使用maven的工具进行打包,点击package即可,一切顺利的话会在target文件夹内生成两个jar文件,一个是未处理的,一个是增加了依赖包等最终得到的jar文件

 

Scala学习笔记(2)——一口气讲完用Itellij(Maven)建工程并打包的事情_第7张图片

10、测试jar文件的有效性:通过cmd进入target文件夹,并输入 java -jar spark_ml-1.0-0.jar,一切顺利的话会输出 Hello Lorry,由打包依赖可知必须要有scala的插件与maven的插件,并且在最终打包结果中会输出一个处理后的jar包和处理之前的jar包,笔者用同样的做法测试了spark的wordcount等程序,结果是一样的,只要在进行maven依赖设置时注意相关事项,就能比较方便的使用该软件进行scala程序建立以及最终打包。

 

 

 

 

 

你可能感兴趣的:(机器学习)