Questions tagged «sbt»

sbt是Scala和Java项目的开源构建工具,类似于Java的Maven或Ant。

3
build.sbt和build.scala有什么区别?
我开始学习Scala,几乎在每个教程中,我都看到一个build.sbt描述项目设置的文件。但是现在我已经giter8从模板安装并创建了一个项目。并从模板丢失的build.sbt文件生成了项目,但是它具有build.scala(似乎用于相同的目的,但是更灵活)。 那么build.sbt和之间有什么区别build.scala? 哪个更优选?为什么?
107 scala  sbt 

4
sbt如何从git中提取依赖项工件?
我听说过(如果我只记得我在哪里的话,我也已经看过示例)sbt可以从git repo获取依赖项。 我正在寻找从github 获取依赖项harrah / up。该存储库不提供任何工件JAR文件,仅提供被设置为使用构建的源树sbt。我想象的过程是sbt将下载源存储库,进行构建,然后将其用作依赖项。 我可能sbt在想,实际上可以做这样的事情。它可以?如果是这样,怎么办?

4
有人可以解释使用SBT的正确方法吗?
我要从衣柜里出来!我不了解SBT。我说过了,现在请帮助我。 条条大路通罗马,那是SBT一样的:要开始SBT有SBT,SBT Launcher,SBT-extras,等,然后有不同的方式,包括和决定库。有没有“最佳”方法? 我问是因为有时候我会迷路。SBT文档非常详尽和完整,但是我发现自己不知道何时使用build.sbtor project/build.properties或project/Build.scalaor project/plugins.sbt。 然后,它变成乐趣,还有就是Scala-IDE和SBT- 什么是使用它们在一起的正确方法?首先是鸡肉还是鸡蛋? 最重要的可能是,如何找到要包含在项目中的正确存储库和版本?我是否只是拉出一个小背包,然后开始破解前进的道路?我经常发现包含所有内容和厨房水槽的项目,然后我意识到-我并不是唯一迷失一点的人。 作为一个简单的例子,现在,我正在启动一个全新的项目。我想用最新的功能SLICK和Scala这很可能需要最新版本的SBT的。入门的理智点是什么,为什么?我应该在哪个文件中定义它,外观如何?我知道我可以解决这个问题,但是我真的很希望专家就一切应该去哪里(为什么要去那里会有奖金)提出专家意见。 我已经在SBT小型项目中使用了一年多了。我曾经使用过SBT,然后SBT Extras(因为它使一些头痛神奇地消失了),但是我不确定为什么要使用一个或另一个。我因不了解事物如何配合(SBT以及存储库)而感到沮丧,并且认为如果可以用人的方式来解释,这将使下一个来此工作的人免于很多麻烦。
100 scala  sbt 

3
如何在不运行SBT的情况下编译测试
有没有一种方法可以在不运行SBT的情况下进行构建? 我自己的用例是使用scalac插件对测试代码进行静态分析。另一种可能的用例是,使用与内置在SBT中的运行器不同的运行器来运行部分或全部测试代码。 理想情况下,将有一个适用于任何SBT项目的解决方案。例如,Maven有一个test-compile命令,该命令仅可用于编译测试而无需运行它们。如果SBT有同样的事情,那将是很棒的。 不太理想,但仍然很有帮助的是涉及修改项目构建文件的解决方案。
97 scala  sbt  build-tools 


2
使用Scala的Joda Time发生类中断错误
我正在将Joda Time存储库添加到SBT中, libraryDependencies ++= Seq( "joda-time" % "joda-time" % "2.1" ) 然后我像这样愉快地使用它: val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd") ymd.parseDateTime("20121212") 但是,当我在SBT中编译项目时,我会感到讨厌: [warn] Class org.joda.convert.FromString not found - continuing with a stub. [warn] Caught: java.lang.NullPointerException while parsing annotations in /home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class) [error] error while loading DateTime, class file '/home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)' is broken [error] (class java.lang.RuntimeException/bad constant …
91 scala  sbt  jodatime 

5
如何查看sbt中的依赖树?
我正在尝试按照文档中所述检查SBT依赖关系树: sbt inspect tree clean 但是我得到这个错误: [error] inspect usage: [error] inspect [uses|tree|definitions] <key> Prints the value for 'key', the defining scope, delegates, related definitions, and dependencies. [error] [error] inspect [error] ^ 怎么了?SBT为什么不建树?

3
如何在IntelliJ IDEA中使用SBT构建Uber JAR(Fat JAR)?
我正在使用SBT(在IntelliJ IDEA中)构建一个简单的Scala项目。 我想知道构建Uber JAR文件(又名Fat JAR,Super JAR)的最简单方法是什么。 我目前正在使用SBT,但是当我将JAR文件提交给Apache Spark时,出现以下错误: 线程“主”中的异常java.lang.SecurityException:清单主要属性的无效签名文件摘要 或在编译期间出现此错误: java.lang.RuntimeException:重复数据删除:在以下文件中找到了不同的文件内容: PATH \ DEPENDENCY.jar:META-INF / DEPENDENCIES PATH \ DEPENDENCY.jar:META-INF / MANIFEST.MF 它看起来像那是因为我的一些依赖包括需要在尤伯杯决赛JAR文件被删除签名文件(META-INF)。 我试图像这样使用sbt-assembly插件: /project/assembly.sbt addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0") /project/plugins.sbt logLevel := Level.Warn /build.sbt lazy val commonSettings = Seq( name := "Spark-Test" version := "1.0" scalaVersion := "2.11.4" ) lazy …

10
如何设置SBT的堆大小?
我正在使用SBT 0.12.0。我已经阅读了关于堆栈溢出的其他答案并关注它们,但是它们都没有帮助,例如: 创建ForkRun类-使用sbt期间我没有观察到任何分叉的过程 设置环境变量JAVA_OPTS-已设置,但sbt的进程命令行似乎根本没有使用它。 sbt -J-Xmx2G将参数附加到sbt进程命令行,但是-Xmx1536msbt使用旧值代替附加的参数。 我想念什么吗?在同时进行测试和时,如何设置sbt 0.12的堆大小run?
89 scala  sbt 


16
如何从代理后面使用sbt?
如何配置sbt以使用代理? 例如,我的生成定义需要连接到GitHub上,用于指定连接参数http.proxy,http.proxyPort,user,和password。 如何将这些设置传递给sbt? 当我在家工作时,是否有一种简单的方法可以在代理/无代理设置之间切换?
85 sbt 

2
多项目中的SBT测试依赖项:使测试代码可用于依赖项目
我有一个SBT多项目,其中一些项目相互依赖。像这样: lazy val coreProject: Project = Project( id = "core-project", base = file("./core-project"), // other stuff )) lazy val extensions: Project = Project( id = "extensions", base = file("./extensions"), dependencies = Seq(coreProject) ) 现在,我在测试文件夹的“核心”项目中有了一些测试代码。还有诸如模拟和测试实用程序之类的东西。现在,我想在扩展的测试中使用这些测试实用程序。对于生产代码,这是可行的,因为我已经声明了依赖项。但是,似乎对测试不依赖。当我运行测试时,我收到缺少类的编译错误。这些类来自核心项目中的测试代码。 我如何告诉sbt依赖项还应包括测试范围的测试代码?这样我就可以在“扩展”项目的测试代码中重用我的模拟游戏?
83 scala  testing  sbt 

2
如何使用SBT和IntelliJ IDEA管理多个相互依赖的模块?
我正在开发几个相互依赖的模块,并希望在一个IDEA项目中一起使用它们。我正在使用sbt-idea从sbt构建定义中生成IDEA项目,这对于单个项目非常有用。但是,在多模块的情况下,到目前为止,我已经尝试了一些事情: 使用sbt-idea分别为每个模块生成一个IDEA .iml文件;然后从头开始创建一个主IDEA项目,并向其中添加这些模块。这使得模块来源所有可编辑在同一窗口,但它们之间的依赖关系是不被跟踪(因此从内某些源试图导航FOO项目,在一些酒吧带我到的进口库版本吧,而不是本地资源)。 使用sbt多项目构建(又称子项目),其中父项目的Build.scala包含以下内容: lazy val foo = Project(id = "foo", base = file("foo")) lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo) 这几乎可以正常工作,因为sbt-idea生成一个主IDEA项目,并跟踪子项目之间的依赖关系。但是,有两个警告: 子项目必须位于主项目的子目录中(即file("../foo")不允许)是sbt的限制。这不是我真正想要的(如果在两个不同的主项目中使用模块(例如“ utils”或“ commons”包),该怎么办?)但我可以接受。 我的一个子项目有自己的子项目。我不确定sbt本身是否正确处理了这些嵌套项目,但是无论如何它们都被sbt-idea忽略。显然,我需要将嵌套子项目递归地包含在主项目中。 总结一下:我想将可能已经有子项目的模块收集到一个具有跟踪依赖项的大型IDEA项目中,以方便进行编辑。我该怎么做?谢谢!


8
Scala编译时如何防止java.lang.OutOfMemoryError:PermGen空间?
我注意到我的Scala编译器有一个奇怪的行为。编译类时,有时会抛出OutOfMemoryError。这是错误消息: [info] Compiling 1 Scala source to /Users/gruetter/Workspaces/scala/helloscala/target/scala-2.9.0/test-classes... java.lang.OutOfMemoryError: PermGen space Error during sbt execution: java.lang.OutOfMemoryError: PermGen space 它只会偶尔发生一次,并且通常不会在随后的编译运行中引发该错误。我使用Scala 2.9.0并通过SBT进行编译。 是否有人知道导致此错误的原因?预先感谢您的见解。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.