Add CheckProhibitedDependenciesLifecyclePlugin
Issue gh-10501
This commit is contained in:
parent
d146bcb7fc
commit
72dd4e738b
|
@ -166,8 +166,3 @@ tasks.register('checkSamples') {
|
||||||
s101 {
|
s101 {
|
||||||
configurationDirectory = project.file("etc/s101")
|
configurationDirectory = project.file("etc/s101")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('checkForProhibitedDependencies', check -> {
|
|
||||||
check.setGroup(LifecycleBasePlugin.VERIFICATION_GROUP)
|
|
||||||
check.setDescription("Checks for prohibited dependencies")
|
|
||||||
})
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.plugins.BasePlugin
|
import org.gradle.api.plugins.BasePlugin
|
||||||
import org.gradle.api.plugins.PluginManager
|
import org.gradle.api.plugins.PluginManager
|
||||||
|
import org.springframework.gradle.classpath.CheckProhibitedDependenciesLifecyclePlugin
|
||||||
import org.springframework.gradle.maven.SpringNexusPublishPlugin
|
import org.springframework.gradle.maven.SpringNexusPublishPlugin
|
||||||
|
|
||||||
class RootProjectPlugin implements Plugin<Project> {
|
class RootProjectPlugin implements Plugin<Project> {
|
||||||
|
@ -32,6 +33,7 @@ class RootProjectPlugin implements Plugin<Project> {
|
||||||
pluginManager.apply(SchemaPlugin)
|
pluginManager.apply(SchemaPlugin)
|
||||||
pluginManager.apply(NoHttpPlugin)
|
pluginManager.apply(NoHttpPlugin)
|
||||||
pluginManager.apply(SpringNexusPublishPlugin)
|
pluginManager.apply(SpringNexusPublishPlugin)
|
||||||
|
pluginManager.apply(CheckProhibitedDependenciesLifecyclePlugin)
|
||||||
pluginManager.apply("org.sonarqube")
|
pluginManager.apply("org.sonarqube")
|
||||||
|
|
||||||
project.repositories.mavenCentral()
|
project.repositories.mavenCentral()
|
||||||
|
|
|
@ -18,7 +18,6 @@ package org.springframework.gradle.classpath;
|
||||||
|
|
||||||
import org.gradle.api.Plugin;
|
import org.gradle.api.Plugin;
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
import org.gradle.api.Task;
|
|
||||||
import org.gradle.api.artifacts.Configuration;
|
import org.gradle.api.artifacts.Configuration;
|
||||||
import org.gradle.api.artifacts.ConfigurationContainer;
|
import org.gradle.api.artifacts.ConfigurationContainer;
|
||||||
import org.gradle.api.plugins.JavaBasePlugin;
|
import org.gradle.api.plugins.JavaBasePlugin;
|
||||||
|
@ -32,23 +31,16 @@ import org.springframework.util.StringUtils;
|
||||||
* @author Rob Winch
|
* @author Rob Winch
|
||||||
*/
|
*/
|
||||||
public class CheckClasspathForProhibitedDependenciesPlugin implements Plugin<Project> {
|
public class CheckClasspathForProhibitedDependenciesPlugin implements Plugin<Project> {
|
||||||
public static final String CHECK_PROHIBITED_DEPENDENCIES_TASK_NAME = "checkForProhibitedDependencies";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
|
project.getPlugins().apply(CheckProhibitedDependenciesLifecyclePlugin.class);
|
||||||
project.getPlugins().withType(JavaBasePlugin.class, javaBasePlugin -> {
|
project.getPlugins().withType(JavaBasePlugin.class, javaBasePlugin -> {
|
||||||
configureProhibitedDependencyChecks(project);
|
configureProhibitedDependencyChecks(project);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configureProhibitedDependencyChecks(Project project) {
|
private void configureProhibitedDependencyChecks(Project project) {
|
||||||
TaskProvider<Task> checkProhibitedDependencies = project.getTasks().register(CHECK_PROHIBITED_DEPENDENCIES_TASK_NAME, task -> {
|
|
||||||
task.setGroup(JavaBasePlugin.VERIFICATION_GROUP);
|
|
||||||
task.setDescription("Checks both the compile/runtime classpath of every SourceSet for prohibited dependencies");
|
|
||||||
});
|
|
||||||
project.getTasks().named(JavaBasePlugin.CHECK_TASK_NAME, checkTask -> {
|
|
||||||
checkTask.dependsOn(checkProhibitedDependencies);
|
|
||||||
});
|
|
||||||
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
|
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
|
||||||
sourceSets.all((sourceSet) -> createProhibitedDependenciesChecks(project,
|
sourceSets.all((sourceSet) -> createProhibitedDependenciesChecks(project,
|
||||||
sourceSet.getCompileClasspathConfigurationName(), sourceSet.getRuntimeClasspathConfigurationName()));
|
sourceSet.getCompileClasspathConfigurationName(), sourceSet.getRuntimeClasspathConfigurationName()));
|
||||||
|
@ -70,6 +62,6 @@ public class CheckClasspathForProhibitedDependenciesPlugin implements Plugin<Pro
|
||||||
checkClasspath.setDescription("Checks " + classpath.getName() + " for prohibited dependencies");
|
checkClasspath.setDescription("Checks " + classpath.getName() + " for prohibited dependencies");
|
||||||
checkClasspath.setClasspath(classpath);
|
checkClasspath.setClasspath(classpath);
|
||||||
});
|
});
|
||||||
project.getTasks().named(CHECK_PROHIBITED_DEPENDENCIES_TASK_NAME, checkProhibitedTask -> checkProhibitedTask.dependsOn(checkClasspathTask));
|
project.getTasks().named(CheckProhibitedDependenciesLifecyclePlugin.CHECK_PROHIBITED_DEPENDENCIES_TASK_NAME, checkProhibitedTask -> checkProhibitedTask.dependsOn(checkClasspathTask));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2012-2022 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.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.springframework.gradle.classpath;
|
||||||
|
|
||||||
|
import org.gradle.api.Plugin;
|
||||||
|
import org.gradle.api.Project;
|
||||||
|
import org.gradle.api.Task;
|
||||||
|
import org.gradle.api.plugins.JavaBasePlugin;
|
||||||
|
import org.gradle.api.tasks.TaskProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Rob Winch
|
||||||
|
*/
|
||||||
|
public class CheckProhibitedDependenciesLifecyclePlugin implements Plugin<Project> {
|
||||||
|
public static final String CHECK_PROHIBITED_DEPENDENCIES_TASK_NAME = "checkForProhibitedDependencies";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Project project) {
|
||||||
|
TaskProvider<Task> checkProhibitedDependencies = project.getTasks().register(CheckProhibitedDependenciesLifecyclePlugin.CHECK_PROHIBITED_DEPENDENCIES_TASK_NAME, task -> {
|
||||||
|
task.setGroup(JavaBasePlugin.VERIFICATION_GROUP);
|
||||||
|
task.setDescription("Checks both the compile/runtime classpath of every SourceSet for prohibited dependencies");
|
||||||
|
});
|
||||||
|
project.getTasks().named(JavaBasePlugin.CHECK_TASK_NAME, checkTask -> {
|
||||||
|
checkTask.dependsOn(checkProhibitedDependencies);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue