2012-02-19 14 views
6

Sto creando alcune attività personalizzate nel mio progetto SBT e ho bisogno di chiamare altre attività per quello.SBT come eseguire InputTask

Come posso chiamare inputTasks dall'interno delle mie attività e supportarle un po 'di input?

risposta

5

Poiché è possibile considerare le proprie attività in base a ciò, suppongo che si stia tentando di utilizzare l'attività run. C'è voluto un po 'di scavo, ma alla fine l'ho fatto funzionare; in poche parole, questo è ciò che si fa (supponendo che il vostro compito è chiamato deployTask, tweak per soddisfare le vostre esigenze):

deployTask <<= (fullClasspath in Compile, runner) map { (classpath, runner) => 
     val logger = ConsoleLogger() // Not sure this is optimal 
     Run.executeTrapExit({ 
      Run.run("com.sample.MainClass", 
        classpath map { _.data }, 
        Seq("option1", "option2", "..."), // <-- Options go here 
        logger)(runner) 
     }, logger) 
    } 

Questo non richiama il InputTask direttamente (non ho trovato un modo per farlo ancora), ma almeno consente di eseguire codice Java arbitrario.

+0

Questo è stato di grande aiuto. Ho cercato per qualche ora, cercando di scoprire come eseguire direttamente un 'InputTask'. Hai detto che non avevi scoperto come * ancora * ... diversi mesi fa - qualche possibilità che hai capito da allora? – Dylan

+0

Siamo spiacenti, no. Per essere onesti, siamo passati a Maven: non è elegante ma è molto più facile far funzionare la squadra. –

Problemi correlati