是否有可能覆盖或修改内置的SBT任务(如编译)以取决于我自己的Build.scala中的自定义任务?覆盖例如直接“编译”是不可能的,因为它已经用惰性val定义,因此引用super.compile会发出编译器错误“super可能不能用于懒惰值”。将新的任务依赖关系添加到内置的SBT任务中?
回答
由于谷歌搜索如何添加一个依赖于SBT,而目前的答案是deprecated as of 0.13.x并删除在1.0时,会出现这个问题,这里是更新后的答案,假设printAction
是compile
应取决于任务:
(Compile/compile) := ((Compile/compile) dependsOn printAction).value
回复自我:http://code.google.com/p/simple-build-tool/wiki/ProjectDefinitionExamples#Insert_Task_Dependency告诉了答案:
如果您正在使用旧的0.7.x版本的SBT你可以这样做:
import sbt._
class SampleProject(info: ProjectInfo) extends DefaultProject(info) {
lazy val printAction = task { print("Testing...") }
override def compileAction = super.compileAction dependsOn(printAction)
}
请注意,此建议仅适用于'较旧'的SBT 0.7.x.目前的0.11是不同的。 –
新版本如何做到这一点? – Hadesara
此答案已过时。请参阅[我刚刚发布的更新版本](https://stackoverflow.com/a/47654822/596329)。 – arussell84
更新:见arussell84的答案了现代的方式执行此
你应该能够做到这一点是这样的:
在名.bst文件:
compile <<= (compile in Compile) dependsOn jruby
哪里JRuby是你已经在项目/ something.scala文件中定义的任务关键:
val jruby = TaskKey[Unit]("jruby", "run a jruby file")
而且,这不是你的问题的一部分,但你可以经常打电话Scala代码:
compile <<= (compile in Compile) map { result =>
println("in compile, something")
result
}
在那里有很多'编译',我无法弄清楚这是如何扩展到向其他任务添加依赖关系的。我该如何添加依赖到'舞台'? –
@ScottMorrison我想你说:'舞台<<舞台依赖于jruby' – 0fnt
这个答案已经过时。请参阅[我刚刚发布的更新版本](https://stackoverflow.com/a/47654822/596329)。 – arussell84
在base_dir/project/
文件夹中创建一个文件build.sbt
,把libraryDependencies += ...
那里。
这就是建立“构建项目”(也称为“元构建”)的惯用SBT方式。
- 1. 具有依赖关系的Sbt任务
- 2. Gradle任务依赖关系
- 3. 如何在sbt更新依赖关系时执行任务?
- 4. 如何覆盖sbt中某些任务的依赖关系
- 5. OpenMP - Fortran中的任务依赖关系
- 6. 芹菜中的任务依赖关系
- 7. 在Gradle中,将任务与依赖关系配置关联
- 8. 任务之间的Gradle依赖关系
- 9. SBT sub/build.sbt导入依赖关系root/build.sbt任务
- 10. 可视化gradle任务依赖关系
- 11. Google App Engine - 任务依赖关系
- 12. 自定义MSBuild任务依赖关系
- 13. SharePoint任务字段依赖关系
- 14. 使用jarbundler ant任务向应用添加依赖关系
- 15. 覆盖rake任务和rake任务依赖关系?
- 16. 获取SBT任务以依赖于OneJar任务
- 17. 任务管理应用程序的任务前任/依赖关系逻辑
- 18. 将任务依赖项添加到Rake :: TestTask
- 19. 跟踪Excel中的任务依赖关系
- 20. 如何让任务依赖于sbt 0.12中的另一个?
- 21. 依赖Ant任务完成依赖任务执行
- 22. 添加副本的任务,因为依赖于现有的摇篮任务
- 23. 如何在外部构建脚本中为任务添加preBuild依赖关系?
- 24. Gradle:如何添加依赖到特定的任务?
- 25. 将Maven依赖关系添加到Eclipse
- 26. 访问Gradle插件任务中的项目配置 - >无法确定任务的依赖关系
- 27. Intellij sbt不会解决依赖关系的依赖关系
- 28. Sbt项目依赖关系
- 29. SBT缺少依赖关系
- 30. 不能让我的任务SBT任务
SBT 0.13的可能重复http://stackoverflow.com/q/8554992/1305344 –