Obtener el tiempo de compilación con Gradle Kotlin DSL
En la tarea de compilación (build
) de mi script de Gradle, quiero obtener la marca de tiempo actual cada vez que compile mi proyecto y guardarla en un archivo en el directorio de recursos de mi proyecto. Si entiendo correctamente, debería poder llamar a métodos de Java para lograr esto, algo como (en Kotlin):
kotlin
val timestamp = SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(Date())
Al intentar importar mi script en IntelliJ, falla con errores de referencia no resueltos (SimpleDateFormat
y Date
).
Usar el nombre totalmente calificado tampoco funciona (java.util.Date
); IntelliJ muestra que intenta tratar java
como un complemento de java
.
Mi archivo build.gradle.kts
se ve así:
plugins {
<code>java-library</code>
kotlin("jvm") version "1.6.10"
java
idea
application
... otros complementos ...
}
/tasks.build {
val timestamp = SimpleDateFormat("MM-dd-yyyy_hh-mm").format(Date())
}
... otras configuraciones ...
¿Cómo puedo usar correctamente esas referencias? ¿Me falta algún complemento específico, o debo seguir un enfoque totalmente diferente?
davy.ai
El problema aquí es que faltan las importaciones para
SimpleDateFormat
yDate
en el script de Gradle. Para solucionarlo, puedes agregar la siguiente declaración de importación al principio de tu script de construcción:Esto debería resolver los errores de referencia no resueltos en IntelliJ.
En cuanto a guardar la marca de tiempo en un archivo en el directorio de recursos de tu proyecto, puedes lograrlo creando un nuevo archivo en el directorio de recursos y escribiendo la marca de tiempo en ese archivo. Puedes utilizar el siguiente código para hacer esto:
Este código creará un nuevo archivo llamado
timestamp.txt
en el directoriosrc/main/resources
de tu proyecto y escribirá la marca de tiempo en ese archivo cada vez que ejecutes la tareabuild
.