Declaring custom 'clean' task when using the standard Gradle lifecycle plugins is not allowed

android-studio, gradle, plugins

Solution

You should not try to override the default `clean` task, but instead configure it to delete additional stuff like

clean {
    delete rootProject.buildDir
}

But check first whether this is not the default behavior of the clean task anyway.

Alternatively if you want to be able to do a specific clean action individually, you can also define a separate task and add a dependency like

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

Problem

I am adding a library to jCenter so to do that I needed to add some plugins to my project's build.gradle file. However, I am getting the error Declaring custom 'clean' task when using the standard Gradle lifecycle plugins is not allowed. I can see the `task clean` block and when I delete it the error goes away. I assume that is all I need to do, but was it doing something important before? If I remove the plugins sometime and forget to add the `clean` block back in, what dire consequences are in store? ``` 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 } ``` This and this this did not satisfactorily answer the question.

Original source