是否有可能覆蓋或修改內置的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 –