我还需要做一些与sbt完全无关的事情,而不是发现自己浪费了很多时间。 official documentation是故事般的循环,完全没有帮助争论DSL。除了scaladoc之外,整个DSL还没有记录。例如。以http://www.scala-sbt.org/0.13/tutorial/Basic-Def.html为例。
有人可以推荐涵盖最后一个链接主题的人性化教程或参考,或者更好的是,为以下内容提供明确的建设性描述:
键
设置
任务
作用域
与上述实体/类相关的DSL的关键运营商和方法
可在DSL中与之互动的现成对象
如何定义和调用函数而不是普通的scala代码, 并且.scala构建定义是否真的已弃用?
如何在几个文件中拆分构建定义,而不是在build.sbt中有一大堆代码(或者,如何构建一个以后仍然可以读取的.sbt文件)。
多项目.sbt
v。裸项目.sbt
- 您如何区分?
是否有对sbt文件的ScalaIDE支持?
请关注sbt 0.13.x,因为其他一切都在变老......
答案 0 :(得分:1)
1-参考资料我知道除了官方doc之外,我推荐博客All Jazz
以及这些优秀的文章:
7-我不关心是否弃用project/*.scala
个文件,但是对于定义设置和任务*.sbt
语法更轻。我仅使用*.scala
文件代码。
8-我自己将build.sbt
文件拆分成了几个文件。具有.sbt
扩展名的基本文件夹中的所有文件将聚合到一个大文件中。
我只需要重复settingKey
的定义,而不是它的实现。
我的*.sbt
个文件是62 Kb,我认为它们是可读的。任务和设置可以包含嵌入式文档,这可能是冗长的。
val mySetting = settingKey[String]("""
documentation.....
""")
val myTask = taskKey[String]("""
documentation.....
""")
通过IDEA,我可以轻松查看结构并快速导航到任何设置或任务,并查看其实现。
为了避免*.sbt
中的噪音,当任务的执行时间较长时,我会将其写在单独的project/*.scala
文件中。
可以在其他项目中重复使用的通用代码,我将其放在单独的.scala
文件中。
9-多项目SBT文件。
它只有几行如:
lazy val myFirstProject = project.settings(Seq(
setting1 := value1,
setting2 := value2
))
lazy val mySecondProject = project.settings(Seq(
setting1 := value1,
setting2 := value2
))
与单一项目没有什么不同:
setting1 := value1
setting2 := value2
10-对于编辑SBT文件,IDEA及其Scala插件的效果确实很好 Scala IDE没有,这是我使用IDEA而不是Eclipse的主要原因。