Scala是一种运行于JVM之上的新型语言。JRuby, Jython, Groovy等也可以将其他语言的一些特点带进Java的生态圈。但就个人体会,Scala和这些编程语言相比,如同Symbian之于Android或IOS。虽然大家都是一个圈子里面的,但完全不在同一个时代。加之Play Framework的助力,Scala的路会越走越宽。对于企业开发,Scala最大的障碍不在对之前Java产品的支持,而在程序员的数量上。Scala的切入点很好,因为它是强类型的语言,在运行的性能上远超出JRuby, Jython, Groovy,执行效率与Native的Java程序几无差别。在对Java的互操作方面体现很好,这就保证了企业可在使用Scala的开发中保证了之前Java软件产品的投资不会丢失。而它带入的函数式编程,对多线程编程的良好支持,为开发大量并发应用体现出优势。(这也是Play Framework的亮点)
回到现实,Scala短期内还无迹象被业界大规模采用。但如果打算将Scala带进企业开发,最好的出发点可能是自动化测试和支持软件开发的工具。对于这两方面,大多数企业的态度是,知道长期来看它的好处,但不愿在眼下去投资。如果要想做些事情,程序员不得不牺牲自己的业余时间。而Scala用于此再合适不过。所以下面我将Scala项目的开发搭建搭建做了一个总结。学语言,学以致用,用它去做一些正经的事情。
1. 安装、配置需要的软件
Scala: http://www.scala-lang.org/downloads
Scala IDE: http://scala-ide.org/
Scala-sbt: http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html
因为sbt会使用ivy作为库管理工具。ivy默认把library repository建在user home下面。Unix/Linux/Mac OS都还好说,如果就一个分区(或一个逻辑分区),无所谓发在哪个位置啦。如果操作系统是Windows,有分了C: D: E: 等若干分区,还是不要放在默认的%USERPROFILE%下面,C盘会随着开发的项目越来越多,大量的空间被开发库所占用。定制library local repository的位置的方法是:
编辑文件sbt启动脚本: [sbt安装目录]\sbt.bat,设置Java启动参数:-Dsbt.ivy.home=E:/dev/ivy/
@REM SBT launcher script
@REM
@REM Envioronment:
@REM JAVA_HOME - location of a JDK home dir (mandatory)
@REM SBT_OPTS - JVM options (optional)
@setlocal
@echo off
set SBT_HOME=%~dp0
set ERROR_CODE=0
rem We use the value of the JAVACMD environment variable if defined
set _JAVACMD=%JAVACMD%
if "%_JAVACMD%"=="" (
if not "%JAVA_HOME%"=="" (
if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
)
)
if "%_JAVACMD%"=="" set _JAVACMD=java
rem We use the value of the JAVA_OPTS environment variable if defined
set _JAVA_OPTS=%JAVA_OPTS%
if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=-Xmx512M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m -Dsbt.log.format=true Dsbt
:run
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%jansi.jar;%SBT_HOME%sbt-launch.jar;%SBT_HOME%classes" SbtJansiLaunch %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal
exit /B %ERROR_CODE%
用sbt创建,运行,测试和发布项目都很方便,但这还不够,软件开发是要写代码的。而务实的开发者都会用现代的IDE去写代码。用写字板,vi或其他文本编辑做开发,更多的是体现一种编程文化的象征意义,正经干活没必要放着更先进的好东西不用。好,这方面咱们就不解释了。说正事。安装sbteclipse插件 https://github.com/typesafehub/sbteclipse , 可以在sbt console里面生成eclipse scala project。更为有用的事,sbteclipse在生成项目时会根据build.sbt里面定义的库依赖,生成一个.classpath文件。也就是说把Eclipse Scala项目的classpath,设置好了。如果以后的开发中有使用新的第三方库,安装如下次序,可以更新classpath的配置
1). 在build.sbt里面定义库依赖
2). 在sbt console里面执行update命令,下载相应的库到local library repository
3). 在sbt console里面执行eclipse命令,更新classpath设置
2. 用sbt创建项目
这里用一个例子来说明:
f:\tmp\test>dir
Volume in drive F is file
Volume Serial Number is A646-F0A7
Directory of f:\tmp\test
02/19/2013 02:09 PM <DIR> .
02/19/2013 02:09 PM <DIR> ..
02/19/2013 11:04 AM 269 build.sbt
02/19/2013 02:08 PM <DIR> target
1 File(s) 269 bytes
3 Dir(s) 29,323,710,464 bytes free
f:\tmp\test>type build.sbt
name := "Project Plan"
version := "1.0"
scalaVersion := "2.9.2"
libraryDependencies ++= Seq(
"org.mongodb" %% "casbah" % "2.5.0",
"net.sourceforge" % "mpxj" % "4.3.0"
)
f:\tmp\test>sbt
[info] Loading global plugins from C:\Users\gzhang\.sbt\plugins
[info] Set current project to Project Plan (in build file:/F:/tmp/test/)
> eclipse
[info] About to create Eclipse project files for your project(s).
[info] Updating {file:/F:/tmp/test/}default-c4a35f...
[info] Resolving org.scala-lang#scala-library;2.9.2 ...
[info] Resolving org.mongodb#casbah_2.9.2;2.5.0 ...
[info] Resolving org.mongodb#casbah-commons_2.9.2;2.5.0 ...
[info] Resolving com.github.nscala-time#nscala-time_2.9.2;0.2.0 ...
[info] Resolving joda-time#joda-time;2.1 ...
[info] Resolving org.joda#joda-convert;1.2 ...
[info] Resolving org.specs2#specs2_2.9.2;1.12.2 ...
[info] Resolving org.specs2#specs2-scalaz-core_2.9.2;6.0.1 ...
[info] Resolving org.slf4j#slf4j-api;1.6.0 ...
[info] Resolving org.mongodb#mongo-java-driver;2.10.1 ...
[info] Resolving org.mongodb#casbah-core_2.9.2;2.5.0 ...
[info] Resolving org.mongodb#casbah-query_2.9.2;2.5.0 ...
[info] Resolving org.mongodb#casbah-gridfs_2.9.2;2.5.0 ...
[info] Resolving net.sourceforge#mpxj;4.3.0 ...
[info] Resolving org.apache.poi#poi;3.7 ...
[info] Resolving junit#junit;3.8.1 ...
[info] Done updating.
[info] Successfully created Eclipse project files for project(s):
[info] Project Plan
> exit
f:\tmp\test>tree
Folder PATH listing for volume file
Volume serial number is A646-F0A7
F:.
├─project
│ └─target
│ └─config-classes
├─src
│ ├─main
│ │ ├─java
│ │ └─scala
│ └─test
│ ├─java
│ └─scala
└─target
├─scala-2.9.2
│ └─cache
│ └─update
└─streams
└─$global
├─ivy-configuration
│ └─$global
├─ivy-sbt
│ └─$global
├─project-descriptors
│ └─$global
└─update
└─$global
其中,
定义build.sbt文件,请参照sbt的文档: http://www.scala-sbt.org/release/docs/index.html。 特别说明的是,当添加一个依赖库的时候,通过Maven Central Repository Search来查找很便捷。比如,项目需要使用Mongo DB的driver
在Maven Central Repository里面查找”mongodb“:
点击所需库的版本号到Artifact Details页面:
展开Scala SBT,将里面的Dependency Information拷贝粘贴到build.sbt文件里面,然后在sbt console里面运用update,eclipse。下载库,配置项目的classpath就自动完成了。
http://www.tuicool.com/articles/AJnIvq
相关推荐
本文档将详细介绍如何在 Windows 10 和 JDK 1.8 的环境下,搭建完整的 Scala + sbt + IntelliJ IDEA 开发环境。这对于初学者来说尤其重要,因为这套组合能够提供强大的开发工具链支持,极大地提高开发效率。 #### ...
总的来说,SBT ivy2 scala构建工具boot包是 Scala 开发的重要工具,它整合了 SBT 的强大构建功能和 Ivy2 的高效依赖管理,为 Scala 项目提供了简洁高效的开发流程。这个包可以帮助开发者快速搭建项目环境,定义和...
SBT(Scala Build Tool)是Scala编程语言的主要构建工具,它极大地简化了Scala项目构建、管理和依赖管理的...它提供了必要的工具和库,使得开发者可以快速搭建开发环境,便捷地管理项目依赖,从而高效地进行开发工作。
在本压缩包“scala安装软件.zip”中,包含了安装Scala所需的必要组件,使得用户能够轻松地在自己的计算机上搭建Scala开发环境。 首先,我们来看关键的组成部分——IDEA IntelliJ IDEA的应用程序安装包。IntelliJ ...
使用Scala+IntelliJ IDEA+Sbt搭建开发环境
总的来说,SBT作为Scala项目的构建工具,提供了强大的依赖管理、灵活的构建配置以及高效的开发流程,使得Scala开发变得更加便捷。解压并使用`sbt-1.5.5.tgz`,开发者可以快速地搭建和管理Scala项目,实现高效开发。
总的来说,Scala 2.12.10对于Windows用户来说是一个全面的开发环境,不仅提供了语言本身,还包括了运行和开发所需的所有组件。通过学习和使用Scala,开发者能够利用其强大的功能和灵活性,开发出高效、可扩展的应用...
此外,Jelastic还提供了丰富的环境模板,包括多种Java版本和框架,使得快速搭建Scala开发环境变得简单。 **Java开发** 虽然标题提到“在Jelastic上使用Scala编程Java开发Java”,但这可能是指使用Scala编写Java应用...
本教程涵盖了大数据技术开发环境的搭建,涉及多个重要组件,包括Hadoop、Spark、HBase、Hive等。以下将详细介绍这些技术的安装与配置过程。 首先,搭建开发环境通常从软件下载开始,这里可能包括虚拟机管理器(如...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。在这个"scala-2.11.6.tgz"压缩包中,我们找到了...通过这个压缩包,你可以快速搭建Scala开发环境,开始探索这个强大且富有表现力的语言世界。
总的来说,`sbt-0.13.9及所有依赖的插件.zip` 提供了一套完整的构建环境,方便开发者快速搭建Scala项目,进行高效的开发和构建工作。在使用时,只需解压到合适的位置,然后通过命令行启动`sbt`,即可开始享受它带来...
6. **跨平台支持**:sbt支持多种操作系统,包括Windows、Linux和MacOS,使得开发环境的搭建变得简单。 **sbt-1.6.1版本的更新与改进:** 虽然具体到1.6.1版本的更新细节没有在描述中给出,但通常每个新版本会包含...
环境搭建1”和描述中主要涉及的是 Scala 语言的安装过程,特别是如何在 IntelliJ IDEA 中配置 Scala 开发环境。以下是详细的步骤和相关知识点: 1. **Scala 安装特性**: Scala 与其他编程语言不同,它并不直接...
本文将详细介绍如何在Windows环境下,使用IntelliJ IDEA配合sbt来搭建一个Scala开发环境,特别是针对那些从Linux迁移至Windows环境的项目。 #### 二、问题描述与解决方案 **问题描述**:一个同事已经在Linux环境下...
Spark是基于Scala开发的一个分布式计算框架,其高性能、易用性和灵活性使得它成为大数据处理领域的首选工具。 Spark项目始于2009年,由加州大学伯克利分校AMPLab发起,后来发展成为一个独立的开源项目,目前由...
本方案集成了CentOS环境下的Spark、Hadoop、Hive、Scala、sbt和ZooKeeper,无需考虑版本兼容问题,可以直接用于大数据处理和分析。 【适合人群】 需要在CentOS下搭建大数据处理平台的工程师。 【包含内容】 - Spark ...