首页 > 解决方案 > 通过 build.gradle 任务在项目目录中创建 version.txt 文件(gradle 5.0)

问题描述

旧问题已过时(通过 build.gradle 任务在项目目录中创建 version.txt 文件

我目前的任务:

task exportVersion {
    def file = project.layout.buildDirectory.file("version.txt")
    def f = file.get().asFile
    f.text = "$project.android.defaultConfig.versionName"
}

这是一个稍微重写的任务,以删除 gradle 5.0 的“不兼容”更改,但仍然显示警告:

DefaultSourceDirectorySet 构造函数已被弃用。这计划在 Gradle 5.0 中删除。请改用 ObjectFactory 服务来创建 SourceDirectorySet 的实例。

ProjectLayout.directoryProperty() 方法已被弃用。这计划在 Gradle 5.0 中删除。请改用 ObjectFactory.directoryProperty() 方法。

ProjectLayout.fileProperty() 方法已被弃用。这计划在 Gradle 5.0 中删除。请改用 ObjectFactory.fileProperty() 方法。

如何使用 ObjectFactory 重写任务?该项目是一个 Android 应用程序,但我认为这并没有太大的变化。

标签: gradle

解决方案


在您的任务exportVersion中,您没有使用显示的警告中列出的任何不推荐使用的方法:也许这些警告涉及您脚本的另一部分?

对于需要使用方法的已弃用代码:您可以简单地获取using方法ObjectFactory.xyz的实例,请参阅https://docs.gradle.org/5.0-rc-3/javadoc/org/gradle/api/Project.html#getObjects --ObjectFactoryProject.getObjects()

例如,不推荐使用的代码

project.layout.directoryProperty() 

可以改写为:

project.getObjects().directoryProperty() 

推荐阅读