¿Cómo escribir variables en el archivo de propiedades de Gradle cuando ejecutas la tarea?

Tengo un caso así. Necesito guardar la fecha actual después de cada versión de lanzamiento con gradle. ¿Hay alguna posibilidad de guardar la fecha en el archivo gradle.properties que pueda leer en el próximo trabajo de compilación?

Mis archivos: gradle.properties:

version=0.0.1
date=

build.gradle:

task changeDate() {
    file = new File("changelogs/CHANGELOG_RELEASE_FROM_"+getDate()+".md");
    project.setProperty("date",getDate());
}

No funciona y no guarda la variable de fecha en gradle.properties.

Así que deseo poder tener una fecha de lanzamiento en mi archivo gradle.properties:

gradle.properties:

version=0.0.1
date=12.04.2019
Respuesta 1

Los métodos getProperty, findPropertyy setPropertyno están directamente relacionados con el gradle.propertiesarchivo. En cambio, proporcionan acceso a propiedades en el ámbito de la Projectinstancia contra la cual build.gradlese evalúa. Este alcance incluye muchas propiedades diferentes, entre ellas las llamadas propiedades adicionales (provenientes de los gradle.propertiesarchivos).

Sin embargo, Gradle proporciona un tipo de tarea para esta funcionalidad llamada WriteProperties. Simplemente especifique el archivo de destino y defina algunas propiedades:

task changeDate(type: WriteProperties) {
    outputFile = file('gradle.properties')
    property 'date', getDate()
}
Respuesta: 2

Estoy usando JAX-RS 1.0. El servidor verifica que haya un encabezado HTTP personalizado antes de procesar la solicitud. Me gustaría hacer de este tipo de comportamiento similar a AOP para el cliente JAX-RS, donde ...

Tengo el siguiente escenario: 1. Creé un JFrame jFrame en una clase "FrontEnd.java" que implementa ActionListener. Luego agrego un objeto Canvas3D a su ContentPane, y luego, agrego un ...

Soy nuevo en Java y me gustaría saber cómo asignar correctamente los valores dentro de un constructor con parámetros. El problema es cómo encapsular adecuadamente los valores, es decir, si utilizamos métodos establecidos o es ...

Entonces, dado que no he podido encontrar una manera de resolver nuestros problemas de dependencia al incluir todo desde fuentes externas, recurrí a Eclipse / IvyDE para la integración de ant / Ivy. Dicho esto, yo ...