【问题标题】:Get build time with Gradle Kotlin DSL使用 Gradle Kotlin DSL 获得构建时间
【发布时间】:2022-01-05 19:34:06
【问题描述】:

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

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

尝试将我的脚本导入 IntelliJ 失败,出现未解决的引用错误(SimpleDateFormat 和 Date)。

使用完全限定名也不起作用(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 ...

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

【问题讨论】:

    标签: java kotlin gradle gradle-kotlin-dsl


    【解决方案1】:

    您是否尝试在 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 类,而是使用较新的java.time.Instant 类。

    【讨论】:

    • 我先试过了,但我才意识到我没有把它一直放在文件的顶部......呃。这行得通,谢谢!
    猜你喜欢
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多