Gradle documentation states that using the getProject()
method in the @TaskAction
method of a Task
class should not be used if you want compatibility with Gradle Configuration Cache. The question I have is that, suppose you have something like this:
public abstract class AbstractMyTask extends DefaultTask {
@Internal
protected abstract DirectoryProperty getRootDirectory();
protected AbstractMyTask() {
getRootDirectory().convention(getProject().getRootProject().getLayout().getProjectDirectory());
}
}
The general intent of the code snippet is to have a Directory
property representing the root project directory (ie. a safe replacement for getProject().getRootDir()
), and it seems like the getProject()
call in the constructor would be okay. I'd like some sober second thought on whether that is the case.