Scala开发之1:环境搭建

Scala开发之1:环境搭建

好久没写博客了。今天把 Scala 开发的经验总结一下,备忘。

Why Scala

其实没有为什么,好玩,足够了。Scala 足够强大,足够优雅,足够挖掘其内涵。如何非要和 Python相比,Python 五大三粗,足够丑陋,足够彪悍,脏活累活不在话下。Scala 背后有 Java 大靠山,亦能登大雅之堂。

How to do

对于语法这些东西,不用是记不住的。我也就不重复了。其实我也是边用边学。首先是安装环境。Windows和Linux均可。首先安装 JDK8或11。我习惯用Java8。然后是 Maven。别的IDE什么的我也不会,就不说了。然后用 Maven可以编译Java项目。这样一个基本的开发环境就具备了。Scala就是安装其运行时。这样在命令行里敲 scala 就可以打开其 REPL 了。

scala 运行时下载安装

从 Scala 官网地址 http://www.scala-lang.org/downloads 下载 Scala 二进制包。选择自己需要的版本。

Widnows 选择MSI安装包:

https://downloads.lightbend.com/scala/2.12.12/scala-2.12.12.msi

Centos 下载 RPM 包:

$ wget https://downloads.lightbend.com/scala/2.12.12/scala-2.12.12.rpm

$ rpm -ivh scala-2.12.12.rpm

Cygwin 下载(add url =http://mirrors.163.com/cygwin/):

https://downloads.lightbend.com/scala/2.12.12/scala-2.12.12.tgz

安装成功之后,打开命令行终端,敲 scala 进去,就可以干活了。

ammonite REPL 下载安装

ammonite 是一个升级版的 scala repl。主要目的是为了将 scala 当成脚本语言来使用。scala 是一个编译型的语言,不方便动态生成代码并执行。于是有大牛写了这个ammonite——既是一个命令行工具 (REPL),也包含一些好用的库和运行时支持(jar 包)。等于是站在巨人的肩膀上。

在 Linux/Cygwin 一键安装 ammonite:

$ sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/lihaoyi/Ammonite/releases/download/2.2.0/2.12-2.2.0) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm' && amm

安装完毕之后,运行命令 amm 就进入了 ammonite REPL。

ammonite 动态执行脚本的问题

我用 A.java 调用 B.scala, B.scala 里面实现调用动态生成的 C.sc。C.sc就是我用 A.java 在运行时生成的脚本文件。这样做有一个问题,就是运行 mvn test 命令时并不能真正执行 C.sc,而真正运行 A.jar 的时候是可以运行的。这很令人费解,不过不影响这个实现方案。

要想在 Java 项目使用 ammonite,pom.xml 需要引入下面的配置:

    <!-- https://mvnrepository.com/artifact/com.lihaoyi/ammonite -->
    <dependency>
        <groupId>com.lihaoyi</groupId>
        <artifactId>ammonite_2.12.12</artifactId>
        <version>2.2.0-4-4bd225e</version>
    </dependency>

其他参考了这篇文章:

scala脚本执行:原生执行和框架调用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车斗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值