我正在使用Gradle构建一个涉及本机库的Java项目。我有定义的任务jniHeaders
:如何追加一个Gradle任务而不使用`dependsOn`?
jniHeaders.dependsOn classes
所以当我输入gradle jniHeaders
,它将编译Java类和生成JNI头。到现在为止还挺好。
但我觉得打字gradle jniHeaders
不是很自然。 99%的时间,如果你成功编译Java类,你也想生成JNI头文件。如果我可以用gradle classes
编译Java类并在一个步骤中生成JNI头文件,那将会很好。
换句话说,我想任务jniHeaders
添加到任务classes
结束,但前提是classes
成功地完成,实际上做了一些工作。
classes.doLast
想起来,但我无法告诉它执行另一项任务。 classes.finalizedBy jniHeaders
在某种程度上起作用,但生成JNI标头,无论classes
的结果如何。我想我可以添加一些Groovy逻辑来获得我想要的确切行为,但我也怀疑必须有一种更简单的方法。
任何人有任何建议吗?
是否调用多数民众赞成窃听你一个看似随意的任务只是概念?我可能会试图定义另一个任务'allTheThings'(或其他任何!),它们只依赖于'classes'和'jniHeaders'。这似乎比添加精品构建逻辑简单得多:) –