aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornea <romangraef@gmail.com>2022-06-24 00:06:42 +0200
committernea <romangraef@gmail.com>2022-06-24 00:06:42 +0200
commit4e72b93f9cab4e720495903595a9d9c5bb27c1e1 (patch)
treea9c2a16796c6b64866413a0a7c66ebe513c9cefe
parent0721b7cb0e9e680c3e2541b685b1ba7b9a80cb4b (diff)
downloadfrege-gradle-plugin-feature/intellij-new.tar.gz
frege-gradle-plugin-feature/intellij-new.tar.bz2
frege-gradle-plugin-feature/intellij-new.zip
Interact better with gradle java pluginfeature/intellij-new
-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);
+ }
});
}
}