Scala 如何在此build.sbt中声明和使用对象?
我试图理解如何编写一个编写良好的build.sbt文件,并在youtube上学习了一个教程。在该教程中,创建了一个对象,如下所示,但我所写的给出了显示的错误 我做错了什么 我已尝试在不做任何更改的情况下删除导入和对象声明之间的空行Scala 如何在此build.sbt中声明和使用对象?,scala,sbt,Scala,Sbt,我试图理解如何编写一个编写良好的build.sbt文件,并在youtube上学习了一个教程。在该教程中,创建了一个对象,如下所示,但我所写的给出了显示的错误 我做错了什么 我已尝试在不做任何更改的情况下删除导入和对象声明之间的空行 import sbt._ import sbt.Keys._ object BuildScript extends Build { lazy val commonSettings = Seq( organization := "me", version
import sbt._
import sbt.Keys._
object BuildScript extends Build {
lazy val commonSettings = Seq(
organization := "me",
version := "0.1.0",
scalaVersion := "2.11.4"
)
lazy val root = (project in file(".")).
settings(commonSettings: _*).
settings(
name := "deepLearning",
libraryDependencies += "org.deeplearning4j" % "deeplearning4j-core" % "0.4-rc3.4"
)}
error message:
error: illegal start of simple expression
object BuildScript extends Build {
^
[error] Error parsing expression. Ensure that there are no blank lines within a setting.
我认为这条线索实际上解释了这一点:
我觉得克里斯·马丁对这篇文章的编辑是不必要的,但不能拒绝 有两种方法可以解决此问题:
对象构建脚本扩展构建{…}
并对构建文件使用.scala
扩展名。我认为这种方式是推荐的长期Sbt构建文件样式.sbt
扩展名我想你的教程已经过时了。使用最新版本的sbt(0.13+左右),您确实希望执行以下操作:
lazy val commonSettings=Seq(
组织机构:=“我”,
版本:=“0.1.0”,
规模规避:=“2.11.4”
)
lazy val root=(文件中的项目(“.”)。
设置(公共设置)。
背景(
名称:=“深度学习”,
libraryDependencies+=“org.deeplearning4j”%“deeplearning4j核心”%“0.4-rc3.4”
)
但是,如果您的项目没有任何子项目,commonSettings
val
有些多余,您可以直接内联它:
lazy val root=(文件中的项目(“.”)。
背景(
组织机构:=“我”,
名称:=“深度学习”,
版本:=“0.1.0”,
scalaVersion:=“2.11.4”,
libraryDependencies+=“org.deeplearning4j”%“deeplearning4j核心”%“0.4-rc3.4”
)
如果您确实有子项目,并且最后有很多常用设置,您可能希望将它们拉到自动推送中,但这是一个更高级的概念。我是sbt的维护人员,我支持这条消息。@eugene。到目前为止,sbt似乎是一个了不起的工具。我相信,对于scala构建工具,完全有可能在项目根目录下创建一个(build).sbt。我认为另一个堆栈溢出线程解释得很好。