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
库中使用。在解决这种依赖关系时,SBT
将Scala 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 版本