Skip to content

Commit 537696a

Browse files
committed
use TaskProvider for lazy task registration instead of eager create()
Switch from project.getTasks().create() to project.getTasks().register() for lazy task configuration. This allows Gradle to configure tasks only when needed and follows modern Gradle plugin best practices.
1 parent 072bb9d commit 537696a

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/main/java/io/github/git/commit/id/gradle/plugin/GitCommitIdPlugin.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.gradle.api.plugins.JavaPlugin;
2828
import org.gradle.api.tasks.SourceSet;
2929
import org.gradle.api.tasks.SourceSetContainer;
30+
import org.gradle.api.tasks.TaskProvider;
3031
import pl.project13.core.GitCommitIdExecutionException;
3132
import pl.project13.core.util.GenericFileManager;
3233

@@ -167,15 +168,15 @@ public void apply(Project project) {
167168
GitCommitIdPluginFilterSettingsExtension.NAME,
168169
GitCommitIdPluginFilterSettingsExtension.class);
169170
// Task
170-
var task = project.getTasks().create(
171+
TaskProvider<GitCommitIdPluginGenerationTask> taskProvider = project.getTasks().register(
171172
GitCommitIdPluginGenerationTask.NAME,
172-
GitCommitIdPluginGenerationTask.class);
173-
task.onlyIf(ignore -> extension.getSkip().get() == false);
173+
GitCommitIdPluginGenerationTask.class,
174+
task -> task.onlyIf(ignore -> extension.getSkip().get() == false));
174175

175176
// React to external plugins
176177
// See https://docs.gradle.org/current/userguide/implementing_gradle_plugins.html#reacting_to_plugins
177178
project.getTasks().named(JavaPlugin.CLASSES_TASK_NAME).configure(
178-
classesTask -> classesTask.dependsOn(task));
179+
classesTask -> classesTask.dependsOn(taskProvider));
179180

180181
project.getPlugins().withType(JavaPlugin.class, javaPlugin -> {
181182
SourceSetContainer sourceSets =
@@ -188,6 +189,6 @@ public void apply(Project project) {
188189
project
189190
.getExtensions()
190191
.getExtraProperties()
191-
.set("gitProperties", new PropertyExposingClosure(this, task));
192+
.set("gitProperties", new PropertyExposingClosure(this, taskProvider.get()));
192193
}
193194
}

0 commit comments

Comments
 (0)