Skip to content

Commit 1e10067

Browse files
committed
Reduce scope of META-INF customizations to main, source, and javadoc jars
Closes gh-23955
1 parent 49ea023 commit 1e10067

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.io.File;
1919
import java.util.Arrays;
2020
import java.util.Collections;
21+
import java.util.HashSet;
2122
import java.util.List;
2223
import java.util.Map;
2324
import java.util.Set;
@@ -106,19 +107,25 @@ private void configureJarManifestConventions(Project project) {
106107
.collect(Collectors.toSet());
107108
Set<String> javadocJarTaskNames = sourceSets.stream().map(SourceSet::getJavadocJarTaskName)
108109
.collect(Collectors.toSet());
109-
project.getTasks().withType(Jar.class, (jar) -> project.afterEvaluate((evaluated) -> {
110-
jar.metaInf((metaInf) -> metaInf.from(extractLegalResources));
111-
jar.manifest((manifest) -> {
112-
Map<String, Object> attributes = new TreeMap<>();
113-
attributes.put("Automatic-Module-Name", project.getName().replace("-", "."));
114-
attributes.put("Build-Jdk-Spec", project.property("sourceCompatibility"));
115-
attributes.put("Built-By", "Spring");
116-
attributes.put("Implementation-Title",
117-
determineImplementationTitle(project, sourceJarTaskNames, javadocJarTaskNames, jar));
118-
attributes.put("Implementation-Version", project.getVersion());
119-
manifest.attributes(attributes);
120-
});
121-
}));
110+
Set<String> jarTaskNames = sourceSets.stream().map(SourceSet::getJarTaskName).collect(Collectors.toSet());
111+
Set<String> jarTasksOfInterest = new HashSet<String>();
112+
jarTasksOfInterest.addAll(sourceJarTaskNames);
113+
jarTasksOfInterest.addAll(javadocJarTaskNames);
114+
jarTasksOfInterest.addAll(jarTaskNames);
115+
project.getTasks().matching((task) -> jarTasksOfInterest.contains(task.getName())).withType(Jar.class,
116+
(jar) -> project.afterEvaluate((evaluated) -> {
117+
jar.metaInf((metaInf) -> metaInf.from(extractLegalResources));
118+
jar.manifest((manifest) -> {
119+
Map<String, Object> attributes = new TreeMap<>();
120+
attributes.put("Automatic-Module-Name", project.getName().replace("-", "."));
121+
attributes.put("Build-Jdk-Spec", project.property("sourceCompatibility"));
122+
attributes.put("Built-By", "Spring");
123+
attributes.put("Implementation-Title",
124+
determineImplementationTitle(project, sourceJarTaskNames, javadocJarTaskNames, jar));
125+
attributes.put("Implementation-Version", project.getVersion());
126+
manifest.attributes(attributes);
127+
});
128+
}));
122129
}
123130

124131
private String determineImplementationTitle(Project project, Set<String> sourceJarTaskNames,

0 commit comments

Comments
 (0)