commit
4dd0e9ae54
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -47,15 +47,8 @@ class KotlinPluginAction implements PluginApplicationAction {
|
|||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Class<? extends Plugin<? extends Project>> getPluginClass() {
|
||||
try {
|
||||
return (Class<? extends Plugin<? extends Project>>) Class
|
||||
.forName("org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper");
|
||||
}
|
||||
catch (Throwable ex) {
|
||||
return null;
|
||||
}
|
||||
return KotlinPluginWrapper.class;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -30,9 +30,11 @@ interface PluginApplicationAction extends Action<Project> {
|
|||
|
||||
/**
|
||||
* The class of the {@code Plugin} that, when applied, will trigger the execution of
|
||||
* this action. May return {@code null} if the plugin class is not on the classpath.
|
||||
* @return the plugin class or {@code null}
|
||||
* this action.
|
||||
* @return the plugin class
|
||||
* @throws ClassNotFoundException if the plugin class cannot be found
|
||||
* @throws NoClassDefFoundError if an error occurs when defining the plugin class
|
||||
*/
|
||||
Class<? extends Plugin<? extends Project>> getPluginClass();
|
||||
Class<? extends Plugin<? extends Project>> getPluginClass() throws ClassNotFoundException, NoClassDefFoundError;
|
||||
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.springframework.boot.gradle.plugin;
|
|||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.gradle.api.GradleException;
|
||||
import org.gradle.api.Plugin;
|
||||
|
@ -119,10 +120,18 @@ public class SpringBootPlugin implements Plugin<Project> {
|
|||
new WarPluginAction(singlePublishedArtifact), new MavenPluginAction(bootArchives.getUploadTaskName()),
|
||||
new DependencyManagementPluginAction(), new ApplicationPluginAction(), new KotlinPluginAction());
|
||||
for (PluginApplicationAction action : actions) {
|
||||
Class<? extends Plugin<? extends Project>> pluginClass = action.getPluginClass();
|
||||
if (pluginClass != null) {
|
||||
project.getPlugins().withType(pluginClass, (plugin) -> action.execute(project));
|
||||
}
|
||||
withPluginClassOfAction(action,
|
||||
(pluginClass) -> project.getPlugins().withType(pluginClass, (plugin) -> action.execute(project)));
|
||||
}
|
||||
}
|
||||
|
||||
private void withPluginClassOfAction(PluginApplicationAction action,
|
||||
Consumer<Class<? extends Plugin<? extends Project>>> consumer) {
|
||||
try {
|
||||
consumer.accept(action.getPluginClass());
|
||||
}
|
||||
catch (Throwable ex) {
|
||||
// Plugin class unavailable. Continue.
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue