it-swarm.com.de

Das Deklarieren von benutzerdefinierten "Clean" -Aufgaben bei Verwendung der standardmäßigen Lebenszyklus-Plugins von Gradle ist nicht zulässig

Ich füge eine Bibliothek zu jCenter hinzu, damit ich einige Plugins zur build.gradle-Datei meines Projekts hinzufügen muss. Ich bekomme jedoch den Fehler

Das Deklarieren von benutzerdefinierten "Clean" -Aufgaben bei Verwendung der standardmäßigen Lebenszyklus-Plugins von Gradle ist nicht zulässig.

Ich kann den task clean-Block sehen und wenn ich ihn lösche, geht der Fehler weg. Ich gehe davon aus, dass dies alles ist, was ich tun muss. Wenn ich die Plugins irgendwann entferne und vergesse, den clean-Block wieder hinzuzufügen, welche schlimmen Konsequenzen sind dann zu erwarten?

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.3.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

plugins {
    id "com.jfrog.bintray" version "1.7.3"
    id "com.github.dcendents.Android-maven" version "1.5"
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Dies und das hat die Frage nicht zufriedenstellend beantwortet.

30
Suragch

Sie sollten nicht versuchen, die Standardaufgabe clean zu überschreiben, sondern sie so konfigurieren, dass zusätzliche Elemente wie gelöscht werden

clean {
    delete rootProject.buildDir
}

Prüfen Sie jedoch zuerst, ob dies ohnehin nicht das Standardverhalten der Bereinigungsaufgabe ist.

Wenn Sie eine bestimmte Bereinigungsaktion einzeln ausführen möchten, können Sie alternativ auch eine separate Aufgabe definieren und eine ähnliche Abhängigkeit hinzufügen

task customClean(type: Delete) {
    delete rootProject.buildDir
}
clean.dependsOn customClean
30
Vampire

Entfernen Sie diese Zeilen aus Ihrem Code.

task clean(type: Delete) {
    delete rootProject.buildDir
}
6

Im angegebenen Code:

allprojects {
repositories {
    google()
    jcenter()
    mavenCentral()
}

tasks.withType(JavaCompile) {
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
}


task clean(type: Delete) {
    delete rootProject.buildDir
}
}

ersetzen Sie task clean durch task delete, dann funktioniert es:

allprojects {
repositories {
    google()
    jcenter()
    mavenCentral()
}

tasks.withType(JavaCompile) {
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
}


task delete(type: Delete) {
    delete rootProject.buildDir`
}
}
3
Laksh

tools> kotlin> configure im Projekt müssen Sie Android Gradle und nicht Gradle auswählen

 It worked for me

3

Ich hatte das gleiche Problem, leider habe ich den task clean an die falsche Stelle gestellt. Ich hatte folgendes:

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    tasks.withType(JavaCompile) {
        sourceCompatibility = "1.8"
        targetCompatibility = "1.8"
    }


    task clean(type: Delete) {
        delete rootProject.buildDir
    }
}

Was musste das sein: 

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    tasks.withType(JavaCompile) {
        sourceCompatibility = "1.8"
        targetCompatibility = "1.8"
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
2
BlackHatSamurai

Nach so vielen Nachforschungen habe ich festgestellt, dass wir die Zeile der sauberen Aufgabe in bulid.gradle (Project) wie folgt kommentieren müssen:

//    task clean(type: Delete) {
//        delete rootProject.buildDir
//    }][1][enter image description here][1]

Siehe das Bild für einen Hinweis

0
Sahil Choudhary
enter code hereallprojects {
repositories {
    google()
    jcenter()
    maven {
        url 'https://maven.google.com'
    }
}

}

task clean(type: Delete) {
    delete rootProject.buildDir
}

wenn Sie in Ihrem "build.gradle" maven hinzugefügt haben, checken Sie alle Klammern aus. Der Code sollte wie oben sein. Es sollte das Problem lösen. Es ist möglich, dass Klammern an verschiedenen Stellen platziert werden. 

0
dilip sarkar