java - 使用 Gradle Kotlin DSL 获取构建时间

标签 java kotlin gradle gradle-kotlin-dsl

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

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

尝试将我的脚本导入 IntelliJ 失败,并出现 Unresolved 引用错误(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 类,而是查看较新的 java.time.Instant 类。

关于java - 使用 Gradle Kotlin DSL 获取构建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70598662/

相关文章:

java - 调用虚方法 null context.getSystemService

android - RecyclerView 项目的值在向下滚动时重置

java - 如何根据条件对数组的项目进行分组而不返回键?

java - 如何在没有 Gradle 的情况下构建 Android 应用程序

java - 导入eclipse项目卡住

java - Jenkins 集群中执行者的数量

java - 与嵌套 HashMap 相关的问题

java - OnClickListener 只执行一次

kotlin - 使用多个键和值进行映射

Gradle toolVersion 不能用作核心插件的版本