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>
其他參考了這篇文章:
相關文章
- 1 – 搭建開發環境開發環境
- Flutter開發入門之開發環境搭建(VSCode搭建Flutter開發環境)Flutter開發環境VSCode
- 1. Angular開發環境搭建Angular開發環境
- ionic開發環境搭建之ios開發環境iOS
- 【Flutter】開發之環境搭建(一)Flutter
- idea開發之springboot環境搭建IdeaSpring Boot
- Scala--執行環境搭建
- day1_搭建前端開發環境前端開發環境
- Python基礎:搭建開發環境(1)Python開發環境
- step 1 :搭建開發除錯環境除錯
- Linux C++ 開發1 - 搭建C++開發環境LinuxC++開發環境
- tensorflow學習之Anaconda開發環境搭建開發環境
- Ubuntu之C++開發環境的搭建UbuntuC++開發環境
- (七)Flutter學習之開發環境搭建Flutter開發環境
- 搭建golang開發環境(1.14之後版本)Golang開發環境
- [最新]使用 IDEA 從0到1搭建 Scala 開發環境(含打 Jar 包到 Linux 執行)Idea開發環境JARLinux
- Androdi開發環境搭建開發環境
- Cordova 開發環境搭建開發環境
- GeoServer開發環境搭建Server開發環境
- Qt開發環境搭建QT開發環境
- 前端開發環境搭建前端開發環境
- QEMU 開發環境搭建開發環境
- 搭建go開發環境Go開發環境
- JAVA開發環境搭建Java開發環境
- 搭建VUE開發環境Vue開發環境
- lua 開發環境搭建開發環境
- Theia 開發環境搭建開發環境
- rollup 開發環境搭建開發環境
- Linux搭建開發環境Linux開發環境
- 深入理解rtmp(一)之開發環境搭建開發環境
- laravel學習筆記之開發環境搭建Laravel筆記開發環境
- 寫作業系統之搭建開發環境作業系統開發環境
- OROCOS之BFL(1)—— Linux環境搭建篇Linux
- ubuntu環境下搭建以太坊開發環境Ubuntu開發環境
- gd32筆記[1]-搭建PlatformIO開發環境筆記Platform開發環境
- 搭建 Laravel + vuetify 開發環境LaravelVue開發環境
- 搭建vue的開發環境Vue開發環境
- GOLang開發環境搭建(Windows)Golang開發環境Windows