我正在我的 SBT 项目中创建一些自定义任务,需要为此调用其他任务。
我如何从我的任务内部调用 inputTasks 并支持他们一些输入?
最佳答案
由于您可以围绕此考虑您自己的任务,因此我假设您正在尝试使用 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 代码。
关于scala - SBT 如何运行 InputTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352400/