scala maven sbt 哪个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala maven sbt 哪个相关的知识,希望对你有一定的参考价值。

参考技术A SBT是Simple Build Tool的简称,如果读者使用过Maven,那么可以简单将SBT看做是Scala世界的Maven,虽然二者各有优劣,但完成的工作基本是类似的。

虽然Maven同样可以管理Scala项目的依赖并进行构建, 但SBT的某些特性却让人如此着迷,比如:

* 使用Scala作为DSL来定义build文件(one language rules them all);
* 通过触发执行(trigger execution)特性支持持续的编译与测试;
* 增量编译;^[SBT的增量编译支持因为如此优秀,已经剥离为Zinc,可被Eclipse, Maven,Gradle等使用]
* 可以混合构建Java和Scala项目;
* 并行的任务执行;
* 可以重用Maven或者ivy的repository进行依赖管理;

等等这些,都是SBT得以在Scala的世界里广受欢迎的印记。

SBT的发展可以分为两个阶段, 即SBT_0.7.x时代以及SBT_0.10.x以后的时代。

目前来讲, SBT_0.7.x已经很少使用, 大部分公司和项目都已经迁移到0.10.x以后的版本上来,最新的是0.12版本。 0.10.x之后的版本build定义采用了新的Settings系统,与最初0.7.x版本采用纯Scala代码来定义build文件大相径庭,虽然笔者在迁移之前很抵触(因为0.7.x中采用Scala定义build文件的做法可以体现很好的统一性),但还是升级并接纳了0.10.x以后的版本,并且也逐渐意识到, 虽然新的版本初看起来很复杂,但一旦了解了其设计和实现的哲学跟思路,就会明白这种设计可以更便捷的定义build文件。而且可选的build文件方式也同样运行采用Scala代码来定义,即并未放弃统一性的思想。

以上是SBT的简单介绍,如果读者已经急于开始我们的SBT之旅,那么让我们先从SBT的安装和配置开始吧!

## SBT安装和配置

SBT的安装和配置可以采用两种方式,一种是所有平台都通用的安装配置方式,另一种是跟平台相关的安装和配置方式,下面我们分别对两种方式进行详细介绍。

### 所有平台通用的安装配置方式
所有平台通用的安装和配置方式只需要两步:

1. 下载sbt boot launcher
- 本书采用最新的sbt0.12,其下载地址为<http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.12.0/sbt-launch.jar>;
2. 创建sbt启动脚本(启动脚本是平台相关的)
- 如果是Linux/Unit系统,创建名称为sbt的脚本,并赋予其执行权限,并将其加到PATH路径中; sbt脚本内容类似于
``java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt-launch.jar "$@"``, 可以根据情况调整合适的java进程启动参数;
- 如果是Windows系统,则创建sbt.bat命令行脚本,同样将其添加到PATH路径中。 脚本内容类似于``set SCRIPT_DIR=%~dp0 \n
java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*``

以上两步即可完成sbt的安装和配置。

### 平台相关的安装配置方式
笔者使用的是Mac系统,安装sbt只需要执行``brew install sbt``即可(因为我已经安装有homebrew这个包管理器),使用macport同样可以很简单的安装sbt - ``sudo port install sbt``;
参考技术B maven吧,sbt仓库很慢.

SBT 与 Maven Central - 在工件 url 中摆脱 Scala 版本

【中文标题】SBT 与 Maven Central - 在工件 url 中摆脱 Scala 版本【英文标题】:SBT with Maven Central - get rid of Scala version in artifact url 【发布时间】:2015-07-06 00:21:11 【问题描述】:

我正在尝试在 Maven Central 上的 Scala 项目 Java 库中使用。在解决这种依赖关系时,SBTScala version 附加到存储库 url,这显然不以这种格式存在。我可以以某种方式禁用此特定工件的附加 Scala 版本吗?

【问题讨论】:

【参考方案1】:

是的,在您的依赖项的工件说明符之前使用% 而不是%%%% 表示法表示该库依赖于 Scala 运行时版本,而您的则不是。

【讨论】:

它在工件说明符之前,而不是版本说明符之前。 谢谢,但我仍然找不到它unresolved dependency: com.yahoo.util#myProject;0.16.0-SNAPSHOT: not found,缺少什么? ; 在做什么?

以上是关于scala maven sbt 哪个的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sbt 将 Scala 库发布到 Maven Central?

如何组装 SBT Scala 库以包含在 Java 7 Maven 项目中?

SBT 与 Maven Central - 在工件 url 中摆脱 Scala 版本

在 Scala 项目中使用 sbt vs maven 的优缺点 [关闭]

Scala sbt 添加国内镜像

Spack 2.4.5 和 Scala 2.11 使用哪个版本的 Sbt 和 Sbt 程序集?