aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example-project/build.gradle1
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java15
2 files changed, 16 insertions, 0 deletions
diff --git a/example-project/build.gradle b/example-project/build.gradle
index 093c54a..b9cf616 100644
--- a/example-project/build.gradle
+++ b/example-project/build.gradle
@@ -1,5 +1,6 @@
plugins {
id 'ch.fhnw.thga.frege' version 'latest'
+ id 'java'
}
frege {
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
index 8e2c74f..7b39fba 100644
--- a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
+++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java
@@ -3,9 +3,12 @@ package ch.fhnw.thga.gradleplugins;
import org.gradle.api.NamedDomainObjectProvider;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
+import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.logging.LogLevel;
import org.gradle.api.plugins.BasePlugin;
+import org.gradle.api.plugins.JavaPluginExtension;
+import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.TaskProvider;
public class FregePlugin implements Plugin<Project>
@@ -160,6 +163,18 @@ public class FregePlugin implements Plugin<Project>
);
project.afterEvaluate(ignored -> {
project.getDependencies().add("implementation", setupFregeCompilerTask.map(SetupFregeTask::getFregeCompilerOutputPath).map(project::files));
+
+ JavaPluginExtension javaPluginExtension = project.getExtensions().findByType(JavaPluginExtension.class);
+ if(javaPluginExtension != null) {
+ SourceSet main = javaPluginExtension.getSourceSets().findByName("main");
+ if(main != null) {
+ main.getOutput().dir(compileFregeTask.get().getOutputs());
+ }
+ }
+ Task classes = project.getTasks().findByName("classes");
+ if(classes != null) {
+ classes.dependsOn(compileFregeTask);
+ }
});
}
}