Итак, вот ситуация;У меня есть игровое приложение, которое интегрировано с активатором.Чтобы запустить задачу Grunt, я добавил Grunt.scala в свой проект
import java.net.InetSocketAddress
import play.sbt.PlayRunHook
import sbt._
object Grunt {
def apply(base: File): PlayRunHook = {
object GruntProcess extends PlayRunHook {
var process: Option[Process] = None
def osCommand(command: String): String = {
System.getProperty("os.name").toLowerCase().startsWith("win") match{
case true => s"cmd.exe /c $command"
case false => command
}
}
override def beforeStarted(): Unit = {
Process(osCommand("grunt dist"), base).run
}
override def afterStarted(addr: InetSocketAddress): Unit = {
process = Some(Process(osCommand("grunt watch"), base).run)
}
override def afterStopped(): Unit = {
process.map(p => p.destroy())
process = None
}
}
GruntProcess
}
}
, а затем добавил следующую строку в свой build.sbt:
PlayKeys.playRunHooks += Grunt(baseDirectory.value)
в основном следовал документации Play.Итак, теперь для запуска моего проекта я использую следующую команду активатора:
activator -Dsbt.log.noformat=true clean dist universal:packageZipTarball
. Вопрос в том, как мне получить доступ к аргументу командной строки dist из класса scala.Я хотел бы использовать этот аргумент, чтобы определить, какую задачу Grunt (dist, test и т. Д.) Мне следует выполнить.