Home > OS >  How to delete all "target" directories from gradle (after converting from maven)
How to delete all "target" directories from gradle (after converting from maven)

Time:05-23

I have a huge maven project, lot of people are using it. I'm currently working on converting it to gradle. One of the last steps will be that I merge the gradle files, and delete the pom.xml files. But I'd like to add a gradle task to clean the maven target directories (of all the sub-projects). In shell I would do something like:

find . -type d -name target -exec rm -rf "{}" \;

But I prefer this to be a gradle task. How do I add it? This is what I tried but it doesn't delete anything:

task cleanMaven(type: Delete) {
   delete fileTree('.').matching { include '**/target/**' }
}

CodePudding user response:

below will handle all modules of root project and prints true if a target dir existed and is deleted

allprojects {
    
    task mvnClean {
        doFirst {
            def targetPath = project.projectDir.toString()   '/target'
            println "target dir exists: ${Files.deleteIfExists(Paths.get(targetPath))}"
        }
    }
}

CodePudding user response:

Based on @PrasadU's answer, but this also deletes all the contents of the target/ directories:

allprojects {
    task mvnClean {
        doFirst {
            def targetPath = project.projectDir.toString()   '/target'
            project.delete(files("${targetPath}"))
        }
    }
}
  • Related