Domanda

Directory Structure:

Project1/ABC/file1.txt

I want the above ABC folder moved/renamed to XYZ (without leaving ABC there).

How can I do this using Gradle. Seems like in Gradle: For a right hand person, it's itching your right ear using your left hand, taking it across top of your head.

I have used the following example: but it doesn't do anything:

task renABCToXYZ(type: Copy) << {
   copy {
      from "Project1"
      into "Project1"
      include 'ABC'
      rename ('ABC', 'XYZ')
   }
}
È stato utile?

Soluzione

Your task declaration is incorrectly combining the Copy task type and project.copy method, resulting in a task that has nothing to copy and thus never runs. Besides, Copy isn't the right choice for renaming a directory. There is no Gradle API for renaming, but a bit of Groovy code (leveraging Java's File API) will do. Assuming Project1 is the project directory:

task renABCToXYZ {
    doLast {
        file("ABC").renameTo(file("XYZ"))
    }
}

Looking at the bigger picture, it's probably better to add the renaming logic (i.e. the doLast task action) to the task that produces ABC.

Altri suggerimenti

With the solution given above you can rename files and folders, you can move files, but you cannot move folders to another destination with renameTo. For this case you have to use ant.move:

 ant.move(file: sourceDir, tofile: targetDir)

Remark: The question is about renaming folders. So the answer above is correct (but the question is a little bit ambiguous). But maybe my answer is helpfull for other users who stumple upon this question and want move move a folder.

Following code will move a file from one directory to another and will rename file

task wb764Jar( type: Jar ) {
        doFirst{
            copy {
                from 'deployment/alpha/workbench_alpha7_64.jnlp'
                into 'build/libs/jar_merge/developed/alpha64/JNLP-INF/'
                rename('workbench_alpha7_64.jnlp', 'APPLICATION.JNLP')
            }
        }
        baseName = 'WorkbenchMaster7_64'
        from files(wbLibsDir + '/jar_merge/developed/alpha64/')
        from zipTree("$wbJar.archivePath")
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top