使用 Gradle Kotlin DSL 获取构建时间

wys*_*koj 7 java gradle kotlin gradle-kotlin-dsl

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

val timestamp = SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(Date())
Run Code Online (Sandbox Code Playgroud)

尝试将我的脚本导入 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 ...
Run Code Online (Sandbox Code Playgroud)

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

End*_*eit 11

您是否尝试过在文件顶部添加导入语句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 ...
Run Code Online (Sandbox Code Playgroud)

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