Llamo a ant.signjar desde un script de gradle. ¿Cómo puedo capturar su salida? No logré que se administrara fácilmente para elevar la salida de INFO a otro nivel, ni para interceptar o envolver la salida a advertencias de error a nivel de ADVERTENCIA. Actualmente, el signjar recuerda que el certificado caducará pronto, pero esto no se muestra en el nivel WARN, que no es tan bueno.Cómo interceptar o elevar los mensajes de registro cuando llamo a una tarea Ant desde Gradle
Respuesta
Supongo que la tarea Ant está utilizando el marco de registro de Ant, y no solo imprimiendo a la salida estándar. En ese caso, ¿has probado lo siguiente?
task taskThatCallsAntTask {
logging.level = LogLevel.INFO
}
Cuando se configura de esta manera, el nivel de registro se cambiará a INFO mientras que la tarea se está ejecutando (y volvió de nuevo después), sin importar el nivel de registro se establece cuando se invoca Gradle. Tenga en cuenta que no puede elevar el nivel de registro de un evento de registro Ant; depende de la tarea Ant a qué nivel se registra.
Eso funciona, pero luego da demasiado registro ya que también imprime otros mensajes que no son advertencias. Realmente preferiría si pudiera interceptar la salida y elevarla en un alcance por línea. Alguna idea sobre eso? – Vampire
Publique una solicitud de función (* idea *) en http://forums.gradle.org. –
Lo hizo en http://forums.gradle.org/gradle/topics/interception_of_ant_task_output, gracias – Vampire
Aquí hay un método que captura el resultado de una tarea Ant registrando un BuildListener personalizado durante la duración de la llamada. uso
def captureAntOutput(ant, Closure command) {
def buffer = new ByteArrayOutputStream()
def captureStream = new PrintStream(buffer, true, "UTF-8")
def listener = new org.apache.tools.ant.DefaultLogger(
errorPrintStream: captureStream,
outputPrintStream: captureStream,
messageOutputLevel: org.apache.tools.ant.Project.MSG_INFO
)
ant.project.addBuildListener(listener)
project.configure(ant, command)
ant.project.removeBuildListener(listener)
return buffer.toString("UTF-8");
}
Ejemplo:
String result = captureAntOutput(ant) {
echo(message: "hello")
}
assert result.contains("hello")
- 1. ¿Puedo escribir una tarea ant que toma parámetros cuando se ejecuta desde otra tarea ant?
- 2. Ant éxito incluso cuando la tarea Ant falla
- 3. ¿Cómo realizar el pago desde SVN con una tarea ANT?
- 4. Finetuning FindBugs tarea ant
- 5. gradle runJar tarea?
- 6. ¿Ejecutar SQL en una tarea de Gradle?
- 7. cómo llamar a una tarea ant cuando anulando el objetivo en un archivo secundario
- 8. ¿Es posible llamar a la tarea ant desde una tarea javascript scriptdef?
- 9. ¿Cómo llamo a los procedimientos almacenados de MySQL desde Perl?
- 10. múltiple depende de tarea ant
- 11. ¿Cómo puedo interceptar los mensajes que se envían a una ventana?
- 12. ¿Cómo usar la tarea de hormiga de gradle?
- 13. Gradle Copy Tarea: ¿Cómo sobrescribir los archivos existentes?
- 14. ¿Cómo reemplazar correctamente la tarea Gradle 'jar'?
- 15. Excluyendo una prueba ScalaTest cuando llamo mis pruebas desde sbt
- 16. Interceptar mensajes en un cliente de WCF
- 17. ¿Cómo llamo a una función Javascript desde Python?
- 18. ¿Cómo llamo a los métodos de control ACPI desde C++ o C# en Windows?
- 19. Interceptar cake2 postLink() mensajes con jQuery
- 20. ¿Cómo obtengo una descripción de error std :: exception cuando llamo a un dll C++ desde C#
- 21. ¿Cómo ejecutar Junit TestSuites desde gradle?
- 22. Deteniendo una tarea java paralela con ant
- 23. NSTimer falla, cuando llamo a [Timer isValid] o [Timer invalidate]
- 24. ¿Cómo ve la salida de registro de SLF4J desde el origen del proyecto durante una compilación de Gradle?
- 25. Ant buildfile no contiene una tarea javac
- 26. ¿Alguien ha usado o escrito una tarea Ant para compilar (Rhino) código de JavaScript a Java?
- 27. SVN: ¿Cómo exportar los archivos modificados con todos los mensajes de registro a una lista?
- 28. ¿Cómo invoco dinámicamente o llamo a una clase en Rails?
- 29. R advertencia() envoltorio - elevar a la función de los padres
- 30. Ejecutar script groovy desde dentro de gradle
Como un lado-nota: Gradle proporciona la [plugin de la firma] (http://gradle.org/docs/current/userguide/signing_plugin.html) para la firma artefactos, por lo que no necesita usar la tarea Ant. –
@BenjaminMuschko Conozco el complemento de firma, pero la documentación dice que solo sirve para generar firmas PGP de archivos, p. para subir a Maven Central. ¿Cómo firmo un archivo JAR con el complemento de firma? – Vampire