Skip to content

Commit 7dc34cc

Browse files
committed
Map optional dependencies to Maven
1 parent 5b74484 commit 7dc34cc

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

buildSrc/src/main/java/org/springframework/gradle/maven/MavenPublishingConventionsPlugin.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package org.springframework.gradle.maven;
22

3+
import io.spring.gradle.propdeps.PropDepsPlugin;
34
import org.gradle.api.Action;
45
import org.gradle.api.Plugin;
56
import org.gradle.api.Project;
7+
import org.gradle.api.component.AdhocComponentWithVariants;
8+
import org.gradle.api.plugins.JavaBasePlugin;
69
import org.gradle.api.plugins.JavaPlugin;
710
import org.gradle.api.plugins.JavaPluginExtension;
811
import org.gradle.api.publish.PublishingExtension;
@@ -15,6 +18,8 @@
1518
import org.gradle.api.publish.maven.MavenPublication;
1619
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
1720

21+
import java.util.function.Consumer;
22+
1823
public class MavenPublishingConventionsPlugin implements Plugin<Project> {
1924
@Override
2025
public void apply(Project project) {
@@ -27,6 +32,13 @@ public void execute(MavenPublishPlugin mavenPublish) {
2732
MavenPublishingConventionsPlugin.this.customizeJavaPlugin(project);
2833
}
2934
});
35+
project.getPlugins().withType(PropDepsPlugin.class).forEach(new Consumer<PropDepsPlugin>() {
36+
@Override
37+
public void accept(PropDepsPlugin plugin) {
38+
AdhocComponentWithVariants component = (AdhocComponentWithVariants) project.getComponents().findByName("java");
39+
component.addVariantsFromConfiguration(project.getConfigurations().getByName("optional"), (details) -> details.mapToOptional());
40+
}
41+
});
3042
}
3143

3244
private void customizePom(MavenPom pom, Project project) {

0 commit comments

Comments
 (0)