Skip to content

Commit f0dfff8

Browse files
committed
Merge branch '2.3.x'
Closes gh-23378
2 parents c624008 + 358b9f8 commit f0dfff8

File tree

5 files changed

+43
-15
lines changed

5 files changed

+43
-15
lines changed

buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,15 +169,18 @@ private void putArtifactVersionProperty(String groupId, String artifactId, Strin
169169

170170
private void addLibrary(Library library) {
171171
this.libraries.add(library);
172-
this.properties.put(library.getVersionProperty(), library.getVersion());
172+
String versionProperty = library.getVersionProperty();
173+
if (versionProperty != null) {
174+
this.properties.put(versionProperty, library.getVersion());
175+
}
173176
for (Group group : library.getGroups()) {
174177
for (Module module : group.getModules()) {
175-
putArtifactVersionProperty(group.getId(), module.getName(), library.getVersionProperty());
178+
putArtifactVersionProperty(group.getId(), module.getName(), versionProperty);
176179
this.dependencyHandler.getConstraints().add(JavaPlatformPlugin.API_CONFIGURATION_NAME,
177180
createDependencyNotation(group.getId(), module.getName(), library.getVersion()));
178181
}
179182
for (String bomImport : group.getBoms()) {
180-
putArtifactVersionProperty(group.getId(), bomImport, library.getVersionProperty());
183+
putArtifactVersionProperty(group.getId(), bomImport, versionProperty);
181184
String bomDependency = createDependencyNotation(group.getId(), bomImport, library.getVersion());
182185
this.dependencyHandler.add(JavaPlatformPlugin.API_CONFIGURATION_NAME,
183186
this.dependencyHandler.platform(bomDependency));

buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,10 @@ private void addPluginManagement(Node projectNode) {
168168
Node plugin = new Node(plugins, "plugin");
169169
plugin.appendNode("groupId", group.getId());
170170
plugin.appendNode("artifactId", pluginName);
171-
plugin.appendNode("version", "${" + library.getVersionProperty() + "}");
171+
String versionProperty = library.getVersionProperty();
172+
String value = (versionProperty != null) ? "${" + versionProperty + "}"
173+
: library.getVersion().toString();
174+
plugin.appendNode("version", value);
172175
}
173176
}
174177
}

buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ public Library(String name, DependencyVersion version, List<Group> groups,
5555
this.name = name;
5656
this.version = version;
5757
this.groups = groups;
58-
this.versionProperty = name.toLowerCase(Locale.ENGLISH).replace(' ', '-') + ".version";
58+
this.versionProperty = "Spring Boot".equals(name) ? null
59+
: name.toLowerCase(Locale.ENGLISH).replace(' ', '-') + ".version";
5960
this.prohibitedVersions = prohibitedVersions;
6061
}
6162

buildSrc/src/main/java/org/springframework/boot/build/constraints/ExtractVersionConstraints.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,10 @@ private void extractVersionProperties(String projectPath) {
103103
Object bom = getProject().project(projectPath).getExtensions().getByName("bom");
104104
BomExtension bomExtension = (BomExtension) bom;
105105
for (Library lib : bomExtension.getLibraries()) {
106-
this.versionProperties.add(new VersionProperty(lib.getName(), lib.getVersionProperty()));
106+
String versionProperty = lib.getVersionProperty();
107+
if (versionProperty != null) {
108+
this.versionProperties.add(new VersionProperty(lib.getName(), versionProperty));
109+
}
107110
}
108111
}
109112

buildSrc/src/test/java/org/springframework/boot/build/bom/BomPluginIntegrationTests.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616
package org.springframework.boot.build.bom;
1717

1818
import java.io.File;
19-
import java.io.FileReader;
2019
import java.io.FileWriter;
2120
import java.io.IOException;
2221
import java.io.PrintWriter;
23-
import java.io.Reader;
2422
import java.util.function.Consumer;
2523

2624
import org.gradle.testkit.runner.BuildResult;
@@ -31,7 +29,6 @@
3129

3230
import org.springframework.boot.build.DeployedPlugin;
3331
import org.springframework.boot.build.assertj.NodeAssert;
34-
import org.springframework.util.FileCopyUtils;
3532

3633
import static org.assertj.core.api.Assertions.assertThat;
3734

@@ -172,6 +169,33 @@ void moduleExclusionsAreIncludedInDependencyManagementOfGeneratedPom() throws IO
172169
});
173170
}
174171

172+
@Test
173+
void libraryNamedSpringBootHasNoVersionProperty() throws IOException {
174+
try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) {
175+
out.println("plugins {");
176+
out.println(" id 'org.springframework.boot.bom'");
177+
out.println("}");
178+
out.println("bom {");
179+
out.println(" library('Spring Boot', '1.2.3') {");
180+
out.println(" group('org.springframework.boot') {");
181+
out.println(" modules = [");
182+
out.println(" 'spring-boot'");
183+
out.println(" ]");
184+
out.println(" }");
185+
out.println(" }");
186+
out.println("}");
187+
}
188+
generatePom((pom) -> {
189+
assertThat(pom).textAtPath("//properties/spring-boot.version").isEmpty();
190+
NodeAssert dependency = pom.nodeAtPath("//dependencyManagement/dependencies/dependency[1]");
191+
assertThat(dependency).textAtPath("groupId").isEqualTo("org.springframework.boot");
192+
assertThat(dependency).textAtPath("artifactId").isEqualTo("spring-boot");
193+
assertThat(dependency).textAtPath("version").isEqualTo("1.2.3");
194+
assertThat(dependency).textAtPath("scope").isNullOrEmpty();
195+
assertThat(dependency).textAtPath("type").isNullOrEmpty();
196+
});
197+
}
198+
175199
private BuildResult runGradle(String... args) {
176200
return GradleRunner.create().withDebug(true).withProjectDir(this.projectDir).withArguments(args)
177201
.withPluginClasspath().build();
@@ -180,12 +204,6 @@ private BuildResult runGradle(String... args) {
180204
private void generatePom(Consumer<NodeAssert> consumer) {
181205
runGradle(DeployedPlugin.GENERATE_POM_TASK_NAME, "-s");
182206
File generatedPomXml = new File(this.projectDir, "build/publications/maven/pom-default.xml");
183-
try (Reader reader = new FileReader(generatedPomXml)) {
184-
System.out.println(FileCopyUtils.copyToString(reader));
185-
}
186-
catch (IOException ex) {
187-
188-
}
189207
assertThat(generatedPomXml).isFile();
190208
consumer.accept(new NodeAssert(generatedPomXml));
191209
}

0 commit comments

Comments
 (0)