我正在編寫一個應該調用另一個命令(來自Eclipse SBT插件的eclipse
)和另一個InputTask
的SBT Command
。調用另一個命令和InputTask的SBT命令
怎樣才能做到這一點?
我正在編寫一個應該調用另一個命令(來自Eclipse SBT插件的eclipse
)和另一個InputTask
的SBT Command
。調用另一個命令和InputTask的SBT命令
怎樣才能做到這一點?
假設你想創建一個「釋放」命令,它需要調用一個名爲「包」了一個任務,你可以添加以下代碼build.sbt:
commands += Command.command("release")((state:State) => {
Project.evaluateTask(pack, state)
println("release called")
state
})
更新時間:
此外,如果你要創建的「釋放」命令,它需要調用一個名爲「init_compile」另一個命令,然後將下面的示例代碼可用於:
commands += Command.command("init_compile")((state:State) => {
println("init_compile called.")
state
})
commands += Command.command("release")((state:State) => {
val newState = Command.process("init_compile",state)
println("release called.")
newState
})
這不會通過類型檢查器。 'evaluateTask'接受一個'ScopedKey [Task [T]]',我需要執行一個'Command'。 – vjovanov
我更新了答案,希望它能解決您的問題。通過調用[Command.process(「command_name」,state)](https://github.com/sbt/sbt/blob/0.13/main/command/src/main/scala/)調用另一個命令的命令SBT/Command.scala#L88)。 –
官方SBT文檔中的命令覆蓋範圍非常薄。 _SBT在Action_中的第10章「使用命令自動化工作流程」更具信息量。 –