使用 Gradle Kotlin DSL 获取构建时间

Get build time with Gradle Kotlin DSL

在我的 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 ...

如何正确使用这些参考文献?我是否缺少特定的插件,或者我是否需要采用完全不同的方法?

您是否尝试过将 import 语句添加到 build.gradle.kts 文件的顶部?

很可能 java 指的是同名任务,因为您在任务范围内。

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 class,而是查看较新的 java.time.Instant class。