diff --git a/buildSrc/src/main/java/org/springframework/gradle/maven/MavenPublishingConventionsPlugin.java b/buildSrc/src/main/java/org/springframework/gradle/maven/MavenPublishingConventionsPlugin.java index d82b6d9436..137a96d1fb 100644 --- a/buildSrc/src/main/java/org/springframework/gradle/maven/MavenPublishingConventionsPlugin.java +++ b/buildSrc/src/main/java/org/springframework/gradle/maven/MavenPublishingConventionsPlugin.java @@ -1,8 +1,11 @@ package org.springframework.gradle.maven; +import io.spring.gradle.propdeps.PropDepsPlugin; import org.gradle.api.Action; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.component.AdhocComponentWithVariants; +import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginExtension; import org.gradle.api.publish.PublishingExtension; @@ -15,6 +18,8 @@ import org.gradle.api.publish.maven.MavenPomScm; import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; +import java.util.function.Consumer; + public class MavenPublishingConventionsPlugin implements Plugin { @Override public void apply(Project project) { @@ -27,6 +32,13 @@ public class MavenPublishingConventionsPlugin implements Plugin { MavenPublishingConventionsPlugin.this.customizeJavaPlugin(project); } }); + project.getPlugins().withType(PropDepsPlugin.class).forEach(new Consumer() { + @Override + public void accept(PropDepsPlugin plugin) { + AdhocComponentWithVariants component = (AdhocComponentWithVariants) project.getComponents().findByName("java"); + component.addVariantsFromConfiguration(project.getConfigurations().getByName("optional"), (details) -> details.mapToOptional()); + } + }); } private void customizePom(MavenPom pom, Project project) {