• 使用SBT构建Scala项目


    既然决定要在Scala上下功夫,那就要下的彻底。我们入乡随俗,学一下SBT。sbt使用ivy作为库管理工具。ivy默认把library repository建在user home下面。

    安装SBT

    在SBT的官网(http://www.scala-sbt.org/)下载相应版本的SBT。

    wpsC448.tmp

    Windows环境下建议配置SBT的环境变量。(windows上搞开发真是越发蛋疼。)具体步骤不说了,就是把sbt/bin目录配置进PATH。

    wpsC459.tmp

    wpsC469.tmp

    在sbt/bin下有个sbt.bat,查看该bat文件。可以了解到该文件依赖于conf/sbtconfig.txt。

    在conf/sbtconfig.txt中添加:

    -Dfile.encoding=UTF8
    
    -Dsbt.boot.directory=d:/sbt-repository/boot/
    
    -Dsbt.ivy.home=d:/sbt-repository/

    说明:

    -Dsbt.boot.directory
    
    -Dsbt.ivy.home

    这两个是配置sbt.boot目录和ivy.home目录,用于缓存的jar包等信息存放位置。默认情况下jar包等信息存放于user home目录。

    另外运行sbt的一下JVM参数也可以在sbtconfig.txt中指定。

    SBT命令行环境

    在命令行中进入工程目录,输入sbt,进入sbt的命令行。(这里建议进入工程目录再运行sbt命令。)

    wpsC46A.tmp

    注意:第一次使用sbt命令,程序会去下载所需要的jar包。整个过程需要很长时间,要耐心等待。当窗口中出现">"提示符,则说明sbt已经成功启动。下载完成后,显示如下图:

    wpsC49A.tmp

     

    sbt命令

    帮助命令 help

    wpsC4AB.tmp

    查看命令的详细帮助文档

    wpsC4AC.tmp

    wpsC4BC.tmp

    显示项目配置 show

    show name :查看当前项目的名字。

    show libraryDependencies :查看当前项目依赖的库。

    使用Scala控制台 console

    输入console回车,会在当前会话内启动一个REPL。sbt会加载当前项目依赖的全部jar包和当前的代码。即可以在这个解释器里实验你的半成品。

    因为依赖的jar包也都被加载了,所以对于那些你可能还不熟悉的第三方库,你有可以在console里玩个痛快!

    运行Scala程序 run

    若项目有个对象带有方法(或者对象继承了 App 品质(trait)),那么可以通过输入 run 在 sbt 中运行代码。

    在 sbt 发现有多个 main 方法时,它会询问你想执行哪一个。

    使用SBT构建项目

    在项目目录下创建project目录。

    wpsC4BD.tmp

    hello-sbt是项目目录。project是其子目录。

    在project目录中创建build.properties文件。在文件中写入使用sbt的版本。若本机没有相应的版本,sbt会自动下载需要的版本。(本机使用当前最新sbt版本0.13.9)

    wpsC4BE.tmp

    在项目目录下,创建build.sbt,填入相应的项目配置

    wpsC4BF.tmp

    接着在命令行中,进入当前工程,使用sbt命令,当看见尖括号提示符,即表示创建成功。(注:第一次使用sbt需要等待很长时间去下载相应文件。)

    wpsC4D0.tmp

    将sbt项目导入到Eclipse

    在eclipse中使用sbt相应的配置文件,需要安装sbteclipse插件,sbteclipse插件会依据sbt的配置生成eclipse项目需要的文件。

    sbteclipse官方地址是 https://github.com/typesafehub/sbteclipse 其中有安装说明。

    在工程目录的project目录下创建plugins.sbt,其中添加插件内容。

    wpsC4D1.tmp

    执行reload命令

    wpsC4D2.tmp

    接着直接执行eclipse命令,即可生成eclipse项目文件。

    在eclipse中导入工程即可:

    wpsC4D3.tmp

    如果没有创建src目录,手动创建如下目录,然后在重新运行eclipse命令即可。

    src/main/scala

    src/main/java

    src/main/resources

    src/test/scala

    src/test/scala

    src/test/resources

    项目导入到Eclipse中显示如下:

    wpsC4E4.tmp

    若发现src目录下没有resources可以尝试手动创建,也可以在build.sbt中添加如下配置。

    EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource

    总之很简单。

    SBT与Scala程序

    编写HelloSBT程序。

    在src/main/scala中写入HelloSBT程序,生成的eclipse项目如下:

    wpsC4E5.tmp

    使用sbt编译程序

    在sbt命令行下输入compile

    wpsC4F5.tmp

    使用sbt运行程序

    在sbt命令行下输入run

    wpsC4F6.tmp

     

    将sbt项目导入到Inetllj IDEA

    工程导入Inetllj IDEA,需要选择build.sbt文件,而不是项目文件。Inetllj IDEA会显示对话框。

    wpsC4F7.tmp

    注意有一些高级选项,可以设置一下。

    SBT官网有中文版的文档:http://www.scala-sbt.org/0.13/tutorial/zh-cn/index.html

    --------------------------------------更多内容待写--------------------------------------------

  • 相关阅读:
    二分图 洛谷P2055 [ZJOI2009]假期的宿舍
    并查集 洛谷P1640 [SCOI2010]连续攻击游戏
    贪心 洛谷P2870 Best Cow Line, Gold
    贪心 NOIP2013 积木大赛
    快速幂 NOIP2013 转圈游戏
    倍增LCA NOIP2013 货车运输
    树形DP 洛谷P2014 选课
    KMP UVA1328 Period
    动态规划入门 BZOJ 1270 雷涛的小猫
    KMP POJ 2752Seek the Name, Seek the Fame
  • 原文地址:https://www.cnblogs.com/shijiaqi1066/p/5103735.html
Copyright © 2020-2023  润新知