我需要定義計算主類名稱然後運行它的自定義任務。我在想這樣的事情創建運行程序的新任務
customTask {
mainClass = compute main class name based on env
runMain(mainClass, jvm-args, fork=true)
}
,然後在SBT我將能夠運行
SBT>自定義任務
可這SBT 11.2做?
我需要定義計算主類名稱然後運行它的自定義任務。我在想這樣的事情創建運行程序的新任務
customTask {
mainClass = compute main class name based on env
runMain(mainClass, jvm-args, fork=true)
}
,然後在SBT我將能夠運行
SBT>自定義任務
可這SBT 11.2做?
晚的答案,但在文檔http://www.scala-sbt.org/release/docs/Detailed-Topics/Tasks#defining-a-new-task
您可以運行任何Scala代碼的任務代碼中提到,你可以創建新的SBT任務。任務也可以採用輸入參數。
非常強大的國際海事組織。
鏈接文檔沒有問題,但應該注意頁面頂部的版本組合框,因爲不同版本的sbt之間存在很大差異。 – Beryllium 2013-08-27 15:04:32
雖然這裏的問題是重用現有輸入任務的功能,例如'runMain'。請參閱https://github.com/sbt/sbt/issues/407 – 2013-11-29 15:21:47
好,你可以試試看。我工作正常,我 -
lazy val testngRun = inputKey[Unit]("custom run task for testng")
testngRun := {
val one = (runMain in Compile).fullInput(" org.testng.TestNG -testclass com.pg.acceptance.testcase.PfsLoginServiceTest").evaluated
}
請注意,'fullInput'方法在版本0.13之前未添加到sbt。 – 2013-11-29 15:11:42
你停留在0.11?如果可以升級到0.13,請參閱visual的答案。在0.11版本中,簡短版本是你不能重複使用'runMain'任務,而是看看sbt源代碼,查看該任務的調用情況,然後在自己的任務中執行相同的調用。 – 2013-11-29 15:22:53