我正在使用native-artifacts插件,该插件定义了许多任务,这些任务提取了在别处构建(并存储在Nexus / Maven中)的依赖项的Nar依赖项。我需要确保在构建二进制文件之前调用这些任务,否则找不到这些Nars包含的头文件。
我的问题是,如何将系统/插件定义的任务定义为我的某个任务的依赖项?
我喜欢这样的事情:
binaries.all {binary ->
dependencies {
// this next line is now the same as the plugin-defined task I want to have called before
// before the build takes place
compile "extractNarDeps${binary.name.capitalize()}"
}
}
可悲的是,这并没有建立起来。我怎么能实现这个目标呢?我有一个名为unitTests的组件,它是一个C ++组件,用于创建unitTestsExecutable。我想在调用compileUnitTests之前调用extractNarDepsxxx。
答案 0 :(得分:0)
首先,你有任何名为binaries
的名单吗?如果是,那么您可以在build.gradle文件中尝试类似下面的内容,因为依赖项将在您定义的任务之前执行:
dependencies {
binaries.each {binary ->
// this next line is now the same as the plugin-defined task I want to have called before
// before the build takes place
compile "extractNarDeps${binary.name.capitalize()}"
}
}
// Your defined task here
答案 1 :(得分:0)
我这样做的方法是将我的任务指定为插件相关任务的依赖关系。缺少的语法链接是使用" tasks"作为参考项目中任务的一种手段。
答案不是我的,这里有很好的解释:tasks._applied_plugin_task_name_here.dependsOn(myTask)