是否有可能覆蓋或修改內置的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. 將任務依賴關係添加到現有的Gradle任務
- 2. 具有依賴關係的Sbt任務
- 3. 將自定義任務插入到SBT中的內置任務依賴項中
- 4. Gradle任務依賴關係
- 5. Gulp任務依賴關係
- 6. 如何在sbt更新依賴關係時執行任務?
- 7. 如何覆蓋sbt中某些任務的依賴關係
- 8. SSIS 2008任務依賴關係配置
- 9. 芹菜中的任務依賴關係
- 10. OpenMP - Fortran中的任務依賴關係
- 11. 在SBT中爲測試失敗執行任務依賴關係
- 12. 在Gradle中,將任務與依賴關係配置關聯
- 13. 任務之間的Gradle依賴關係
- 14. 是否有可能存在依賴於任務的SBT依賴關係?
- 15. SBT sub/build.sbt導入依賴關係root/build.sbt任務
- 16. 可視化gradle任務依賴關係
- 17. Google App Engine - 任務依賴關係
- 18. 自定義MSBuild任務依賴關係
- 19. SharePoint任務字段依賴關係
- 20. 使用jarbundler ant任務嚮應用添加依賴關係
- 21. Nuget Packager任務 - 不添加依賴關係
- 22. 覆蓋rake任務和rake任務依賴關係?
- 23. 獲取SBT任務以依賴於OneJar任務
- 24. 任務管理應用程序的任務前任/依賴關係邏輯
- 25. 從我的任務所依賴的任務中排除任務
- 26. Gulp中的任務依賴
- 27. 帶任務的Gradle綁定依賴關係配置
- 28. Gulp依賴任務
- 29. 將任務依賴項添加到Rake :: TestTask
- 30. Maven的Ant任務 - 依賴
SBT 0.13的可能重複http://stackoverflow.com/q/8554992/1305344 –