mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2025-02-01 02:02:45 +01:00
45 lines
2.3 KiB
Java
45 lines
2.3 KiB
Java
//CHECKSTYLE:OFF
|
|
import org.gradle.util.GradleVersion;
|
|
import org.gradle.groovy.scripts.BasicScript;
|
|
import org.gradle.groovy.scripts.ScriptSource;
|
|
import org.gradle.groovy.scripts.TextResourceScriptSource;
|
|
import org.gradle.internal.resource.StringTextResource;
|
|
/**
|
|
* Precompiled buildlogic.java-application-conventions script plugin.
|
|
**/
|
|
@SuppressWarnings("DefaultPackage")
|
|
public class BuildlogicJavaApplicationConventionsPlugin implements org.gradle.api.Plugin<org.gradle.api.internal.project.ProjectInternal> {
|
|
private static final String MIN_SUPPORTED_GRADLE_VERSION = "5.0";
|
|
@Override
|
|
public void apply(org.gradle.api.internal.project.ProjectInternal target) {
|
|
assertSupportedByCurrentGradleVersion();
|
|
try {
|
|
Class<? extends BasicScript> pluginsBlockClass = Class.forName("cp_precompiled_BuildlogicJavaApplicationConventions").asSubclass(BasicScript.class);
|
|
BasicScript pluginsBlockScript = pluginsBlockClass.getDeclaredConstructor().newInstance();
|
|
pluginsBlockScript.setScriptSource(scriptSource(pluginsBlockClass));
|
|
pluginsBlockScript.init(target, target.getServices());
|
|
pluginsBlockScript.run();
|
|
target.getPluginManager().apply("buildlogic.java-common-conventions");
|
|
target.getPluginManager().apply("application");
|
|
|
|
|
|
Class<? extends BasicScript> precompiledScriptClass = Class.forName("precompiled_BuildlogicJavaApplicationConventions").asSubclass(BasicScript.class);
|
|
BasicScript script = precompiledScriptClass.getDeclaredConstructor().newInstance();
|
|
script.setScriptSource(scriptSource(precompiledScriptClass));
|
|
script.init(target, target.getServices());
|
|
script.run();
|
|
} catch (Exception e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
private static ScriptSource scriptSource(Class<?> scriptClass) {
|
|
return new TextResourceScriptSource(new StringTextResource(scriptClass.getSimpleName(), ""));
|
|
}
|
|
private static void assertSupportedByCurrentGradleVersion() {
|
|
if (GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version(MIN_SUPPORTED_GRADLE_VERSION)) < 0) {
|
|
throw new RuntimeException("Precompiled Groovy script plugins require Gradle "+MIN_SUPPORTED_GRADLE_VERSION+" or higher");
|
|
}
|
|
}
|
|
}
|
|
//CHECKSTYLE:ON
|