SBT如何运行InputTask

时间:2012-02-19 19:23:23

标签: scala sbt

我在SBT项目中创建了一些自定义任务,需要为此调用其他任务。

如何从我的任务中调用inputTasks并支持他们一些输入?

1 个答案:

答案 0 :(得分:5)

由于您可以将自己的任务考虑在内,我假设您正在尝试使用run任务。它需要一些挖掘,但我终于成功了;简而言之,这就是你所做的(假设你的任务名为deployTask,根据你的需要进行调整):

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

这不直接调用InputTask(我还没有找到办法),但它至少可以让你运行任意Java代码。