2012-03-31 78 views
5

我想强制Gradle以自己的方式创建jar。我写我自己的摇篮任务(单独的类)要做到这一点,现在我想用它来替换默认jar任务,使:如何正确代替Gradle'jar'任务?

  • 存档总是带着我的新任务,并从不与老jar产生任务
  • 我的新任务与其他任务的默认jar任务的关系一样 - 这取决于classes任务时,build任务使用它,等
  • 我想我的任务不会被调用时,它的UP-TO-DATE(就像默认的jar

我正在努力做到这一点,我很难实现这一点。例如,我无法强制build任务始终使用我的新任务。

我真的很感激,如果有人可以支持我一个简短的howto。

回答

2

这应该工作:

jar { 
    // reset actions 
    actions = [] 
    // add your action that performs the work based 
    // on the configuration (e.g. 'source') of this task 
    doLast { ... } 
} 
+0

谢谢,这有很大帮助。旧的'jar'永远不会被执行了。然而,任务总是被执行,即使它应该是'UP-TO-DATE'。我怎样才能防止呢? – ghik 2012-03-31 15:01:06

+1

如果使用'--info'运行,Gradle会告诉你为什么它认为任务不是最新的。 – 2012-03-31 19:30:41