如何覆盖任务,使其取决于我在 Gradle 中的一个



我尝试按照他们的示例遵循 gradle 手册,但 copyJars 在 eclipse 任务之前根本没有运行。 (Eclipse 任务来自 Eclipse 插件)

task('copyJars') { 
    ext.collection = files { genLibDir.listFiles() }
    delete ext.collection
    copy { from configurations.compile into genLibDir }
    copy { from fixedLibDir into genLibDir }
}
eclipse.dependsOn = copyJars
task('setupAll', dependsOn: 'eclipse') {
    description = 'Update jars from remote repositories and then fix eclipse classpath for stbldfiles project'
}

此构建脚本存在一些问题:

  • eclipse不引用任务,而是引用同名的模型对象。(你不是eclipse.dependsOn例外吗?
  • 任务copyJars在配置阶段而不是执行阶段(即对于每个构建,即使任务未执行)完成其工作

要解决此问题,请使用 tasks.eclipse.dependsOn(copyJars)task copyJars << { ... } .

另一个问题是,如果没有比用copyJars复制东西并在事后修复 Eclipse 类路径更简单的方法,但我需要更多的信息才能分辨出来。

最新更新