El archivo eachFile en la tarea de copia de Gradle no está funcionando.
Tengo una regla de Gradle como esta:
tasks.addRule("Patrón: updatelight<path> (copia archivos a ../<path>).") { String taskName ->
if (taskName.startsWith("updatelight")) {
task([ "type": Copy ], taskName) {
def projectGroups = (sub + root)
def testEnvPath = taskName - 'updatelight'
into ("../${testEnvPath}/")
logger.info("Copia user.xml")
projectGroups.each { project ->
if (!project.isEmpty()) {
from (project.output) {
into "cfg/${project.newPath}"
eachFile { file ->
println " ${file.sourcePath} -> ${file.path}"
println '----------------------------------------------'
}
}
}
}
[...]
Mi problema es que cadaFile { … } no imprime en la consola. ¿Alguna sugerencia? Soy nuevo en Gradle y solo intento agregar algún registro a la tarea existente.
davy.ai
El problema con esta regla Gradle es que el código dentro del bloque
eachFile
no se está ejecutando. Para solucionar esto, puedes probar agregando la llamada al métodooutputs.upToDateWhen { false }
antes del bloqueeachFile
. Esto indica a Gradle que esta tarea siempre está desactualizada y siempre debe ser ejecutada, asegurando que el código dentro del bloqueeachFile
también se ejecute.El código actualizado se vería así:
Esto asegurará que el código dentro del bloque
eachFile
se ejecute y que la salida se imprima en la consola.