使用Gradle Kotlin DSL获取构建时间

6

在我的Gradle脚本的build任务中,我想在每次构建项目时获取当前时间戳,并将其保存到项目资源目录中的文件中。如果我理解正确,我应该能够调用Java方法来实现这一点,例如(在Kotlin中):

val timestamp = SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(Date())

试图将我的脚本导入IntelliJ时遇到了未解决的引用错误(SimpleDateFormatDate)。

即使使用完全限定名称也无效(java.util.Date); IntelliJ 显示尝试将 java 作为 java 插件处理。

我的 build.gradle.kts 如下:

plugins {
    `java-library`
    kotlin("jvm") version "1.6.10"
    java
    idea
    application
    ... other plugins ...
    
}

tasks.build {
    val timestamp = SimpleDateFormat("MM-dd-yyyy_hh-mm").format(Date())
}

... other configuration ...

我应该如何正确使用这些引用?我是否缺少特定的插件,或者需要采取完全不同的方法?

1个回答

8

你尝试在你的 build.gradle.kts 文件顶部添加一个导入语句了吗?

很可能 java 是指同名任务,因为你正在 tasks 范围内。

import java.util.Date
import java.text.SimpleDateFormat

plugins {
   ...
}

tasks.build {
    val timestamp = SimpleDateFormat("MM-dd-yyyy_hh-mm").format(Date())
}

... other configuration ...

我建议不要使用java.util.Date类,而是应该转而使用较新的java.time.Instant类。


我尝试过那个方法,但是我现在才意识到我没有把它放在文件的顶部... 呃。 这样可以,谢谢! - wyskoj
另一个选项是导入 import java.time.LocalDateTimeimport java.time.format.DateTimeFormatter,然后使用 LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))(选择您的模式)。 - gomn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接