执行任务时如何将变量写入gradle属性文件?

Ann*_*a K 2 java gradle

我身边就有一个这样的案例。我需要在每次使用 gradle 发布版本后保存当前日期。是否有可能将日期保存到 gradle.properties 文件中,以便我可以在下一个构建作业中读取它?

我的文件:gradle.properties:

version=0.0.1
date=
Run Code Online (Sandbox Code Playgroud)

构建.gradle:

task changeDate() {
    file = new File("changelogs/CHANGELOG_RELEASE_FROM_"+getDate()+".md");
    project.setProperty("date",getDate());
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,并且不会将日期变量保存到 gradle.properties 中。

所以我希望我的 gradle.properties 文件中可以有一个发布日期:

gradle.属性:

version=0.0.1
date=12.04.2019
Run Code Online (Sandbox Code Playgroud)

Luk*_*fer 5

方法getPropertyfindPropertysetProperty与文件没有直接关系gradle.properties。相反,它们提供对实例范围内的属性的访问,Project并根据这些属性build.gradle进行评估。此范围包括许多不同的属性,其中包括所谓的额外属性(来自gradle.properties文件)。

但是,Gradle 为该功能提供了一个名为 的任务类型WriteProperties。只需指定目标文件并定义一些属性:

task changeDate(type: WriteProperties) {
    outputFile = file('gradle.properties')
    property 'date', getDate()
}
Run Code Online (Sandbox Code Playgroud)