通过build.gradle任务在项目目录中创建version.txt文件(gradle 5.0)

cur*_*hov 5 gradle

旧问题已过时(通过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"
}
Run Code Online (Sandbox Code Playgroud)

这是一个稍微重写的任务,用于删除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应用程序,但我认为这不是变更任务.

M.R*_*uti 0

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

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

例如,已弃用的代码如下

project.layout.directoryProperty() 
Run Code Online (Sandbox Code Playgroud)

可以重写为:

project.getObjects().directoryProperty() 
Run Code Online (Sandbox Code Playgroud)