Estructura De Directorios:

Project1/ABC/file1.txt

Quiero por encima de la ABC carpeta movido o cambiado de nombre a XYZ (sin salir de ABC).

¿Cómo puedo hacer esto con Gradle. Parece que en Gradle: Para la mano derecha de un persona, es la picazón de su oreja derecha usando su mano izquierda, tomando través de la parte superior de su cabeza.

He utilizado el siguiente ejemplo: pero no hace nada:

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

OriginalEl autor Arun Sangal | 2013-12-31

3 Comentarios

  1. 21

    Su tarea declaración es incorrecta la combinación de la Copy tipo de tarea y project.copy método, lo que resulta en una tarea que no tiene nada de copia y por lo tanto no se ejecuta nunca. Además, Copy no es la mejor opción para cambiar el nombre de un directorio. No hay Gradle API para cambiar el nombre, pero un poco de código Groovy (aprovechando Java File API). Suponiendo Project1 es el directorio del proyecto:

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

    Mirando el panorama, es probable que sea mejor para agregar el cambio de nombre de la lógica (es decir, el doLast acción de la tarea) de la tarea que produce ABC.

    que es lo que estoy haciendo actual en doLast. Gracias Pete.
    En realidad me refería, yo estaba haciendo lo que usted dijo en la doLast acción de la tarea. Por cierto, cambiar el nombre trabajado como te dijo el de arriba, gracias por eso.
    Sólo una advertencia: como javadoc de java.io.File.renameTo, dice, el método es dependiente del sistema subyacente – si Gradle/Groovy utiliza la clase JDK. Mejor aproach parece usar ant.move como dijeron por Matthias o java.nio.file.Files

    OriginalEl autor Peter Niederwieser

  2. 8

    Con la solución dada anteriormente se puede cambiar el nombre de archivos y carpetas, puede mover los archivos, pero no puede mover las carpetas a otro destino con renameTo.
    Para este caso tienes que usar ant.mover:

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

    Comentario: La pregunta es acerca de cambiar el nombre de carpetas. Así que la respuesta anterior es correcta (pero la pregunta es un poco ambigua). Pero tal vez mi respuesta es útil para otros usuarios que stumple a esta pregunta y desea mover mover una carpeta.

    Gracias! Yo estaba usando renameTo() para mover/cambiar el nombre de una carpeta de ‘ABC’ en la carpeta ‘XYZ’ sobrescribir el contenido de la de destino, pero no sobrescribir.. pero hormiga.mover parece haber funcionado muy bien 🙂
    Sí, gracias! Yo no entendía por qué cambiar el nombre no estaba trabajando en un directorio hasta que vi tu post.

    OriginalEl autor Matthias M

  3. 3

    De código siguiente se va a mover un archivo de un directorio a otro y cambiar el nombre de archivo

    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")
        }
    

    OriginalEl autor A Jakhar

Dejar respuesta

Please enter your comment!
Please enter your name here