如何正确替换Gradle的'jar'任务?

7

我想强制Gradle按照我的方式创建jar文件。我写了自己的Gradle任务(单独的类)来完成这个操作,现在我想用它替换默认的jar任务,以便:

  • 使用我的新任务始终生成存档文件,永远不使用旧的jar任务
  • 我的新任务与默认jar任务具有相同的关系 - 它依赖于classes任务,build任务使用它等
  • 我希望我的任务在UP-TO-DATE状态时不被调用(就像默认的jar任务一样)

我正在努力实现这一点,但我遇到了很多麻烦。例如,我无法强制build任务始终使用我的新任务。

如果有人能提供简短的如何操作指南,我将非常感激。

1个回答

3
这应该可以正常工作:
jar {
    // reset actions
    actions = []
    // add your action that performs the work based
    // on the configuration (e.g. 'source') of this task
    doLast { ... }
}

谢谢,这很有帮助。旧的jar不再被执行了。但是任务总是被执行,即使它应该是“UP-TO-DATE”。我该如何防止这种情况发生? - ghik
1
如果你使用 --info 运行,Gradle 将告诉你为什么它认为该任务不是最新的。 - Peter Niederwieser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接