Using getProject() with Gradle Configuration Cache

157 Views Asked by At

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.

0

There are 0 best solutions below