Reduce scope of META-INF customizations to main, source, and javadoc jars

Closes gh-23955
This commit is contained in:
Andy Wilkinson 2020-11-05 14:58:54 +00:00
parent 49ea023a64
commit 1e100677c7

View File

@ -18,6 +18,7 @@ package org.springframework.boot.build;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -106,7 +107,13 @@ class JavaConventions {
.collect(Collectors.toSet());
Set<String> javadocJarTaskNames = sourceSets.stream().map(SourceSet::getJavadocJarTaskName)
.collect(Collectors.toSet());
project.getTasks().withType(Jar.class, (jar) -> project.afterEvaluate((evaluated) -> {
Set<String> jarTaskNames = sourceSets.stream().map(SourceSet::getJarTaskName).collect(Collectors.toSet());
Set<String> jarTasksOfInterest = new HashSet<String>();
jarTasksOfInterest.addAll(sourceJarTaskNames);
jarTasksOfInterest.addAll(javadocJarTaskNames);
jarTasksOfInterest.addAll(jarTaskNames);
project.getTasks().matching((task) -> jarTasksOfInterest.contains(task.getName())).withType(Jar.class,
(jar) -> project.afterEvaluate((evaluated) -> {
jar.metaInf((metaInf) -> metaInf.from(extractLegalResources));
jar.manifest((manifest) -> {
Map<String, Object> attributes = new TreeMap<>();