create version.txt file in project dir via build.g

2019-06-22 12:20发布

问题:

Old question is obsolete(create version.txt file in project dir via build.gradle task)

my current task:

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

This is slightly rewritten task to remove "incompatible" change of gradle 5.0 but warnings are still shown:

The DefaultSourceDirectorySet constructor has been deprecated. This is scheduled to be removed in Gradle 5.0. Please use the ObjectFactory service to create instances of SourceDirectorySet instead.

The ProjectLayout.directoryProperty() method has been deprecated. This is scheduled to be removed in Gradle 5.0. Please use the ObjectFactory.directoryProperty() method instead.

The ProjectLayout.fileProperty() method has been deprecated. This is scheduled to be removed in Gradle 5.0. Please use the ObjectFactory.fileProperty() method instead.

How to rewrite task using ObjectFactory? The project is an Android application, but I think this is not changes task much.

回答1:

In your task exportVersion, you don't use any of the deprecated methods listed in the shown warning: maybe these warning concern another part of your script?

For deprecated code where you need to use ObjectFactory.xyz method: you can simple get an instance of ObjectFactory using Project.getObjects() method, see https://docs.gradle.org/5.0-rc-3/javadoc/org/gradle/api/Project.html#getObjects--

For example, deprecated code like

project.layout.directoryProperty() 

can be rewritten as:

project.getObjects().directoryProperty() 


标签: gradle