Skip to content

Commit b5b8640

Browse files
committed
react to external plugins
1 parent 603b637 commit b5b8640

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,17 @@
1818
package io.github.git.commit.id.gradle.plugin;
1919

2020
import groovy.lang.Closure;
21+
22+
import java.util.Arrays;
2123
import java.util.Map;
2224
import java.util.Properties;
2325
import org.gradle.api.Plugin;
2426
import org.gradle.api.Project;
2527
import org.gradle.api.plugins.ExtensionAware;
28+
import org.gradle.api.plugins.JavaPlugin;
29+
import org.gradle.api.plugins.scala.ScalaPlugin;
30+
import org.gradle.api.tasks.SourceSet;
31+
import org.gradle.api.tasks.SourceSetContainer;
2632
import pl.project13.core.CommitIdPropertiesOutputFormat;
2733
import pl.project13.core.GitCommitIdExecutionException;
2834
import pl.project13.core.util.GenericFileManager;
@@ -163,6 +169,18 @@ public void apply(Project project) {
163169
GitCommitIdPluginGenerationTask.class);
164170
task.onlyIf(ignore -> extension.getSkip().get() == false);
165171

172+
// React to external plugins
173+
// See https://docs.gradle.org/current/userguide/implementing_gradle_plugins.html#reacting_to_plugins
174+
project.getTasks().named(JavaPlugin.CLASSES_TASK_NAME).configure(
175+
classesTask -> classesTask.dependsOn(task));
176+
177+
project.getPlugins().withType(JavaPlugin.class, javaPlugin -> {
178+
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
179+
SourceSet main = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
180+
main.getJava().setSrcDirs(Arrays.asList(task.getOutput().getAsFile().get()));
181+
});
182+
183+
// Expose the generated properties
166184
project
167185
.getExtensions()
168186
.getExtraProperties()

0 commit comments

Comments
 (0)