Gradle Grails "eine Aufgabe mit diesem Namen ist bereits vorhanden"

Ich versuche, erstellen Sie eine test-Aufgabe der Regel mit dem Beispiel in der gradle grails-doc aber ich bekomme immer "eine Aufgabe mit diesem Namen ist bereits vorhanden" Fehler.

Mein build-Skript ist wie folgt:

import org.grails.gradle.plugin.tasks.* //Added import here else fails with "Could not find property GrailsTestTask"

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath "org.grails:grails-gradle-plugin:2.0.0"
  }
}

version "0.1"
group "example"

apply plugin: "grails"

repositories {
  grails.central() //creates a maven repo for the Grails Central repository (Core libraries and plugins)
}

grails {
  grailsVersion = '2.3.5'
  groovyVersion = '2.1.9'
  springLoadedVersion '1.1.3'
}

dependencies {
  bootstrap "org.grails.plugins:tomcat:7.0.50" //No container is deployed by default, so add this
  compile 'org.grails.plugins:resources:1.2' //Just an example of adding a Grails plugin
}

project.tasks.addRule('Pattern: grails-test-app-<phase>') { String taskName ->
    println tasks //shows grails-test-app-xxxxx task. Why?
    //if (taskName.startsWith('grails-test-app') && taskName != 'grails-test-app') {
    //   task(taskName, type: GrailsTestTask) {
    //       String testPhase = (taskName - 'grails-test-app').toLowerCase()
    //       phases = [testPhase]
    //   }
    //}
}

Läuft $gradle grails-test-integration
oder in der Tat alles, was von der form $gradle grails-test-app-xxxxxxxx ergibt den Fehler "Cannot add task 'gradle grails test-app-xxxxxxxx als eine Aufgabe mit diesem Namen ist bereits vorhanden".

Kann jemand bitte beraten, wie kann ich diesen Fehler beheben? Danke.

  • Haben Sie versucht, mit einem anderen task-Namen-Muster? Haben Sie versucht, zu überprüfen, für die Existenz einer Aufgabe, bevor Sie es?
  • Hallo Peter, ja, ich habe versucht, verschiedene Muster es schlägt immer fehl mit dem Fehler "Cannot add-Aufgabe... eine Aufgabe mit diesem Namen existiert bereits."
  • Seltsam. Die Chancen sind, das problem irgendwie mit der grails-gradle-plugin (die ich bin nicht vertraut mit).
  • Meine beste Vermutung ist, dass die grails-gradle-plugin selbst fügt ein "catch all" - Aufgabe der Regel, dass die Delegierten, um das Grails-build-system. In diesem Fall können Sie nicht in der Lage zu erklären, Ihre eigene Aufgabe Regeln, wenn Sie mit diesem plugin.
  • Ich glaube, Sie haben Recht. Auf der Suche durch das plugin source code, es ist eine addRule, die Aufgaben erstellt, für Muster mit vorangestelltem 'grails-'. Gibt es eine Möglichkeit, kann ich eine Aufgabe erstellen, der die gleichen Muster, die vor dem plugin? I. e. in bauen.gradle wie erstelle ich eine Aufgabe, die form grails-XXX, bevor das plugin funktioniert? Oder ist das unklug?
  • Sie könnten versuchen, fügen Sie Ihre eigenen Muster vor der Anwendung des grails plugin. Oder verwenden Sie ein anderes Muster.
  • Danke. Erstellen Sie eigene benutzerdefinierte Regel vor der Anwendung das plugin nicht funktionieren, da das plugin wird versuchen, die gleiche Regel. Wie Sie bereits erwähnt, ich werde wahrscheinlich auch an einem anderen Muster. Noch einmal vielen Dank für Eure Hilfe.
  • Ich denke, es ist ein Problem mit addRule. Ich kommentierte den Inhalt der addRule block und ersetzt es mit println Aufgaben (pls siehe editierten Beitrag oben). Die Aufgabe mit Muster grails-XXXX erzeugt wird, nur mit dem Aufruf addRule. Wenn addRule entfernt wird, wird die Aufgabe nicht erstellt. Irgendwie addRule ist das erstellen der Aufgabe, obwohl ich nicht explizit nennen Aufgaben.erstellen Sie in meinem build-script.
  • Versuchen, w/o Anwendung der Grails-plugin. Es ist wahrscheinlicher, etwas über dieses plugin.
  • Ich möchte zu debug-dieses Problem. Können Sie bitte beraten, wie kann ich nachvollziehen, die addRule Anrufe? Scheint, wie die addRule wurde überschrieben in dem plugin. Kann es überschrieben werden?

InformationsquelleAutor user3240644 | 2014-03-24
Schreibe einen Kommentar