1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- * Copyright 2004-present 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 io.spring.gradle.convention;
- import org.gradle.api.Plugin;
- import org.gradle.api.Project;
- import org.gradle.api.artifacts.ConfigurationContainer;
- import org.gradle.api.plugins.JavaPlugin;
- import org.gradle.api.plugins.JavaTestFixturesPlugin;
- import org.gradle.api.plugins.PluginContainer;
- import org.gradle.api.publish.PublishingExtension;
- import org.gradle.api.publish.maven.MavenPublication;
- import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
- import org.springframework.gradle.propdeps.PropDepsPlugin;
- /**
- * Creates a Management configuration that is appropriate for adding a platform to that is not exposed externally. If
- * the JavaPlugin is applied, the compileClasspath, runtimeClasspath, testCompileClasspath, and testRuntimeClasspath
- * will extend from it.
- * @author Rob Winch
- */
- public class ManagementConfigurationPlugin implements Plugin<Project> {
- public static final String MANAGEMENT_CONFIGURATION_NAME = "management";
- @Override
- public void apply(Project project) {
- ConfigurationContainer configurations = project.getConfigurations();
- configurations.create(MANAGEMENT_CONFIGURATION_NAME, (management) -> {
- management.setVisible(false);
- management.setCanBeConsumed(false);
- management.setCanBeResolved(false);
- PluginContainer plugins = project.getPlugins();
- plugins.withType(JavaPlugin.class, (javaPlugin) -> {
- configurations.getByName(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
- configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
- configurations.getByName(JavaPlugin.TEST_COMPILE_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
- configurations.getByName(JavaPlugin.TEST_RUNTIME_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
- });
- plugins.withType(JavaTestFixturesPlugin.class, (javaTestFixturesPlugin) -> {
- configurations.getByName("testFixturesCompileClasspath").extendsFrom(management);
- configurations.getByName("testFixturesRuntimeClasspath").extendsFrom(management);
- });
- plugins.withType(MavenPublishPlugin.class, (mavenPublish) -> {
- PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class);
- publishing.getPublications().withType(MavenPublication.class, (mavenPublication -> {
- mavenPublication.versionMapping((versions) ->
- versions.allVariants((versionMapping) -> versionMapping.fromResolutionResult())
- );
- }));
- });
- plugins.withType(PropDepsPlugin.class, (propDepsPlugin -> {
- configurations.getByName("optional").extendsFrom(management);
- configurations.getByName("provided").extendsFrom(management);
- }));
- });
- }
- }
|