Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 583
Suragch Avatar asked May 12 '17 08:05

Suragch


People also ask

How do I run a clean command in Gradle?

If you wish to clean (empty) the build directory and do a clean build again, you can invoke a gradle clean command first and then a gradle assemble command. Now, fire the gradle assemble command and you should have a JAR file that is named as <name>-<version>.

What is task clean in Gradle?

Gradle adds the task rule clean<Taskname> to our projects when we apply the base plugin. This task is able to remove any output files or directories we have defined for our task. For example we can assign an output file or directory to our task with the outputs property.

How do I enable task in Gradle?

In the Gradle tool window, right-click a Gradle project. From the context menu, select Tasks Activation.


2 Answers

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 
like image 139
Vampire Avatar answered Sep 25 '22 02:09

Vampire


Remove these lines from your code.

task clean(type: Delete) {     delete rootProject.buildDir } 
like image 29
Chaudhary Nouman Avatar answered Sep 25 '22 02:09

Chaudhary Nouman