2121import org .gradle .api .Plugin ;
2222import org .gradle .api .Project ;
2323import org .gradle .api .attributes .Usage ;
24- import org .gradle .api .component .AdhocComponentWithVariants ;
25- import org .gradle .api .component .ConfigurationVariantDetails ;
2624import org .gradle .api .plugins .JavaPlugin ;
2725import org .gradle .api .plugins .JavaPluginExtension ;
2826import org .gradle .api .plugins .PluginManager ;
@@ -45,6 +43,7 @@ public class SpringMavenPlugin implements Plugin<Project> {
4543 public void apply (Project project ) {
4644 PluginManager pluginManager = project .getPluginManager ();
4745 pluginManager .apply (MavenPublishPlugin .class );
46+ pluginManager .apply (SpringSigningPlugin .class );
4847 pluginManager .apply (PublishLocalPlugin .class );
4948 pluginManager .apply (PublishAllJavaComponentsPlugin .class );
5049
@@ -64,35 +63,15 @@ private void customizeMavenPublication(MavenPublication publication, Project pro
6463 customizePom (publication .getPom (), project );
6564 project .getPlugins ().withType (JavaPlugin .class )
6665 .all ((javaPlugin ) -> customizeJavaMavenPublication (publication , project ));
67- suppressMavenOptionalFeatureWarnings (publication );
6866 }
6967
7068 private void customizeJavaMavenPublication (MavenPublication publication , Project project ) {
71- addMavenOptionalFeature (project );
7269 publication .versionMapping ((strategy ) -> strategy .usage (Usage .JAVA_API , (mappingStrategy ) -> mappingStrategy
7370 .fromResolutionOf (JavaPlugin .RUNTIME_CLASSPATH_CONFIGURATION_NAME )));
7471 publication .versionMapping (
7572 (strategy ) -> strategy .usage (Usage .JAVA_RUNTIME , VariantVersionMappingStrategy ::fromResolutionResult ));
7673 }
7774
78- private void suppressMavenOptionalFeatureWarnings (MavenPublication publication ) {
79- publication .suppressPomMetadataWarningsFor ("mavenOptionalApiElements" );
80- publication .suppressPomMetadataWarningsFor ("mavenOptionalRuntimeElements" );
81- }
82-
83- private void addMavenOptionalFeature (Project project ) {
84- JavaPluginExtension extension = project .getExtensions ().getByType (JavaPluginExtension .class );
85- extension .registerFeature ("mavenOptional" ,
86- (feature ) -> feature .usingSourceSet (extension .getSourceSets ().getByName ("main" )));
87- AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants ) project .getComponents ()
88- .findByName ("java" );
89- if (javaComponent != null ) {
90- javaComponent .addVariantsFromConfiguration (
91- project .getConfigurations ().findByName ("mavenOptionalRuntimeElements" ),
92- ConfigurationVariantDetails ::mapToOptional );
93- }
94- }
95-
9675 private void customizePom (MavenPom pom , Project project ) {
9776 pom .getUrl ().set ("https://spring.io/projects/spring-shell" );
9877 pom .getName ().set (project .provider (project ::getName ));
0 commit comments