问题导读
1、如何方便、快速、有效得在Eclipse下编译打包Scala应用程序?
2、怎样使用Sb来构建发布程序?
3、添加sbt eclipse插件有哪些配置方式?
由于Scala有一个比较完备的Eclipse IDE(Scala IDE for Eclipse), 对于不想从eclipse迁移到Iea平台的Dev来说,如何方便、快速、有效得在Eclipse下编译打包开发Scala应用程序尤为重要。Sbt是类似Maven的一个构建工具,我们将使用它来构建发布程序。
本文会介绍搭建Eclipse开发Scala应用程序的一般步骤,并结合实例演示sbt工具在eclipse里是如何创建项目文件,和编译打包部署程序的。
这里做个备忘,也为初学者少走弯路而做出点小小的贡献。
一、环境准备:
1、Scala : http://www.scala-lang.org/
2、Scala IDE for Eclipse : http://scala-ide.org
3、Sbt: http://www.scala-sbt.org/
4、Sbt Eclipse : https://github.com/typesafehub/sbteclipse typesafe的一个sbt for eclipse的助手,可以帮助生成eclipse
5、Sbt Assembly : https://github.com/sbt/sbt-assembly 发布应用程序的一个sbt插件。
以上列出均为开发时必须的软件环境:
我的,Scala版本是2.10.3, Sbt版本是0.13
二、sbt生成scala eclipse项目:
我们想要在Eclipse里开发scala应用并符合sbt发布程序的文件结构(类似Maven结构),除了手工建立文件结构,还可以采用sbt eclipse的配置方法。
2.1、添加sbt eclipse插件
有2种配置方式:
一种是在~/.sbt/0.13/plugins//build.sbt 里配置addPlugin,这种做法是全局的插件,即对本机所有sbt项目均使用。
另一种是每个项目不一样的plugins,则是在每个项目跟目录下project/plugins.sbt里进行插件配置。
比如test_sbt:
plugins.sbt里面内容配置,添加插件:
2.2、生成eclipse项目文件
然后进入到根目录sbt,成功进入sbt,运行eclipse命令生成eclipse的.classpath等eclipse相关文件:
可以看到和maven的目录结构是相似的:
发现没有resouces目录:
在跟目录的build.sbt里添加:
再执行sbt eclipse
2.3、导入Eclipse中
我们进入Eclipse,利用导入向导的import existing project into workspace这一项进行导入。
至此,我们的项目结构搭建完成,可以像开发java maven项目一样的开发scala sbt项目了。
三、开发与部署
下面准备用一个实际例子演示在Scala里开发的一般步骤,最近用到scala里的json,就用json4s这个json lib来开发一个解析json的例子,json4s地址: https://github.com/json4s/json4s
3.1、添加依赖
我们如果想使用第三方的类,就需要添加依赖关系,和GAV坐标,这个再熟悉不过,我们需要编辑根目录下的build.sbt文件,添加依赖:
这里name,version,scalaVersion要注意每个间隔一行,其它的也是,不然会出错。
libraryDependencies是添加依赖的地方:我们添加2个。
resolvers是仓库地址,这里配置了多个。
如下:
再次运行sbt eclipse,则依赖的jar包会自动加载到classpath:
3.2、测试程序
一个简单的解析Json的程序,程序很简单,这里就不解释了。
至此我们在eclipse能运行Run as Scala Application,但是如何加依赖打包发布呢?
3.3、Assembly
还记得Spark里面的assembly吗?那个就是发布用的,sbt本身支持的clean compile package之类的命令,但是带依赖的one jar打包方式还是assembly比较成熟。
Sbt本身的命令:参考 http://www.scala-sbt.org/0.13/tutorial/Running.html 和 http://www.scala-sbt.org/0.13/docs/Command-Line-Reference.html
Assembly:
Assembly是作为一种插件的,所以要在project下面的plugins.sbt里面配置,至此plugins.sbt文件里内容如下:
除了插件的配置之外,还需要配置跟目录下build.sbt,支持assembly,在文件头部加入:
至此build.sbt文件内容如下:
运行sbt assembly命令进行发布:
我们发现文件发布到了/home/victor/workspace/test_sbt/target/scala-2.10/shengli_test_sbt-assembly-1.0.jar
那我们来执行一下,看是否成功:
执行:
证实发布的结果是成功的。
四、总结
本文介绍了在Eclipse里利用Sbt构建开发Scala程序的一般步骤,并用实例讲解了整个流程。
用sbt eclipse插件生成sbt文件目录结构,sbt eclipse命令来生成更新jar包依赖。
用assebly插件对scala应用进行打包发布。
1、如何方便、快速、有效得在Eclipse下编译打包Scala应用程序?
2、怎样使用Sb来构建发布程序?
3、添加sbt eclipse插件有哪些配置方式?
由于Scala有一个比较完备的Eclipse IDE(Scala IDE for Eclipse), 对于不想从eclipse迁移到Iea平台的Dev来说,如何方便、快速、有效得在Eclipse下编译打包开发Scala应用程序尤为重要。Sbt是类似Maven的一个构建工具,我们将使用它来构建发布程序。
本文会介绍搭建Eclipse开发Scala应用程序的一般步骤,并结合实例演示sbt工具在eclipse里是如何创建项目文件,和编译打包部署程序的。
这里做个备忘,也为初学者少走弯路而做出点小小的贡献。
一、环境准备:
1、Scala : http://www.scala-lang.org/
2、Scala IDE for Eclipse : http://scala-ide.org
3、Sbt: http://www.scala-sbt.org/
4、Sbt Eclipse : https://github.com/typesafehub/sbteclipse typesafe的一个sbt for eclipse的助手,可以帮助生成eclipse
5、Sbt Assembly : https://github.com/sbt/sbt-assembly 发布应用程序的一个sbt插件。
以上列出均为开发时必须的软件环境:
我的,Scala版本是2.10.3, Sbt版本是0.13
二、sbt生成scala eclipse项目:
我们想要在Eclipse里开发scala应用并符合sbt发布程序的文件结构(类似Maven结构),除了手工建立文件结构,还可以采用sbt eclipse的配置方法。
2.1、添加sbt eclipse插件
有2种配置方式:
一种是在~/.sbt/0.13/plugins//build.sbt 里配置addPlugin,这种做法是全局的插件,即对本机所有sbt项目均使用。
另一种是每个项目不一样的plugins,则是在每个项目跟目录下project/plugins.sbt里进行插件配置。
比如test_sbt:
plugins.sbt里面内容配置,添加插件:
2.2、生成eclipse项目文件
然后进入到根目录sbt,成功进入sbt,运行eclipse命令生成eclipse的.classpath等eclipse相关文件:
可以看到和maven的目录结构是相似的:
发现没有resouces目录:
在跟目录的build.sbt里添加:
再执行sbt eclipse
2.3、导入Eclipse中
我们进入Eclipse,利用导入向导的import existing project into workspace这一项进行导入。
至此,我们的项目结构搭建完成,可以像开发java maven项目一样的开发scala sbt项目了。
三、开发与部署
下面准备用一个实际例子演示在Scala里开发的一般步骤,最近用到scala里的json,就用json4s这个json lib来开发一个解析json的例子,json4s地址: https://github.com/json4s/json4s
3.1、添加依赖
我们如果想使用第三方的类,就需要添加依赖关系,和GAV坐标,这个再熟悉不过,我们需要编辑根目录下的build.sbt文件,添加依赖:
这里name,version,scalaVersion要注意每个间隔一行,其它的也是,不然会出错。
libraryDependencies是添加依赖的地方:我们添加2个。
resolvers是仓库地址,这里配置了多个。
如下:
再次运行sbt eclipse,则依赖的jar包会自动加载到classpath:
3.2、测试程序
一个简单的解析Json的程序,程序很简单,这里就不解释了。
至此我们在eclipse能运行Run as Scala Application,但是如何加依赖打包发布呢?
3.3、Assembly
还记得Spark里面的assembly吗?那个就是发布用的,sbt本身支持的clean compile package之类的命令,但是带依赖的one jar打包方式还是assembly比较成熟。
Sbt本身的命令:参考 http://www.scala-sbt.org/0.13/tutorial/Running.html 和 http://www.scala-sbt.org/0.13/docs/Command-Line-Reference.html
Assembly:
Assembly是作为一种插件的,所以要在project下面的plugins.sbt里面配置,至此plugins.sbt文件里内容如下:
除了插件的配置之外,还需要配置跟目录下build.sbt,支持assembly,在文件头部加入:
至此build.sbt文件内容如下:
运行sbt assembly命令进行发布:
我们发现文件发布到了/home/victor/workspace/test_sbt/target/scala-2.10/shengli_test_sbt-assembly-1.0.jar
那我们来执行一下,看是否成功:
执行:
证实发布的结果是成功的。
四、总结
本文介绍了在Eclipse里利用Sbt构建开发Scala程序的一般步骤,并用实例讲解了整个流程。
用sbt eclipse插件生成sbt文件目录结构,sbt eclipse命令来生成更新jar包依赖。
用assebly插件对scala应用进行打包发布。