2012-02-19 24 views
6

SBT projemde bazı özel görevler oluşturuyorum ve bunun için başka görevleri çağırmam gerekiyor.SBT nasıl çalıştırılır InputTask

Girdilerimin içinden inputTasks'i nasıl arayabilirim ve bazı girdileri destekleyebilirim?

cevap

5

Bu şekilde kendi görevlerinizi hesaba katabileceğiniz için, run görevini kullanmaya çalıştığınızı varsayıyorum. Biraz kazmaya başladı, ama sonunda iş yaptım; Özetle, bu (sizin ihtiyaçlarına uygun çimdik, deployTask adlı görevi varsayarak) ne do:

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) 
    } 

Bu doğrudan InputTask çağırmak değil (bunu yapmak için bir yol bulmuş değil henüz), ama en azından rasgele Java kodunu çalıştırmanıza izin veriyor.

+0

Bu çok yardımcı oldu. Şimdi birkaç saat aradım, doğrudan 'InputTask' nasıl çalıştırılacağını bulmaya çalışıyorum. Birkaç ay önce nasıl olduğunu öğrenmediğini söylemiştin. – Dylan

+0

Üzgünüm, hayır. Dürüst olmak gerekirse Maven'e geçtik - bu kadar zarif değil, takımı almayı ve koşmayı çok daha kolay. –