Polish generated pom

This commit removes two useless properties that are already contributed
by `spring-boot-starter-parent`.
This commit is contained in:
Stephane Nicoll
2018-12-06 13:49:09 +01:00
parent 4a75ad6b21
commit bba9eb7a33
19 changed files with 34 additions and 42 deletions

View File

@@ -34,6 +34,7 @@ import java.util.stream.Collectors;
import io.spring.initializr.InitializrException; import io.spring.initializr.InitializrException;
import io.spring.initializr.metadata.BillOfMaterials; import io.spring.initializr.metadata.BillOfMaterials;
import io.spring.initializr.metadata.Dependency; import io.spring.initializr.metadata.Dependency;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom; import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom;
import io.spring.initializr.metadata.InitializrMetadata; import io.spring.initializr.metadata.InitializrMetadata;
import io.spring.initializr.metadata.InitializrMetadataProvider; import io.spring.initializr.metadata.InitializrMetadataProvider;
@@ -364,14 +365,19 @@ public class ProjectGenerator {
if (isMavenBuild(request)) { if (isMavenBuild(request)) {
model.put("mavenBuild", true); model.put("mavenBuild", true);
ParentPom parentPom = metadata.getConfiguration().getEnv().getMaven() Maven maven = metadata.getConfiguration().getEnv().getMaven();
.resolveParentPom(request.getBootVersion()); ParentPom parentPom = maven.resolveParentPom(request.getBootVersion());
if (parentPom.isIncludeSpringBootBom() if (parentPom.isIncludeSpringBootBom()
&& !request.getBoms().containsKey("spring-boot")) { && !request.getBoms().containsKey("spring-boot")) {
request.getBoms().put("spring-boot", metadata.createSpringBootBom( request.getBoms().put("spring-boot", metadata.createSpringBootBom(
request.getBootVersion(), "spring-boot.version")); request.getBootVersion(), "spring-boot.version"));
} }
if (!maven.isSpringBootStarterParent(parentPom)) {
request.getBuildProperties().getMaven()
.put("project.build.sourceEncoding", () -> "UTF-8");
request.getBuildProperties().getMaven()
.put("project.reporting.outputEncoding", () -> "UTF-8");
}
model.put("mavenParentGroupId", parentPom.getGroupId()); model.put("mavenParentGroupId", parentPom.getGroupId());
model.put("mavenParentArtifactId", parentPom.getArtifactId()); model.put("mavenParentArtifactId", parentPom.getArtifactId());
model.put("mavenParentVersion", parentPom.getVersion()); model.put("mavenParentVersion", parentPom.getVersion());

View File

@@ -239,10 +239,6 @@ public class ProjectRequest extends BasicProjectRequest {
} }
} }
else { else {
this.buildProperties.getMaven().put("project.build.sourceEncoding",
() -> "UTF-8");
this.buildProperties.getMaven().put("project.reporting.outputEncoding",
() -> "UTF-8");
this.buildProperties.getVersions().put(VersionProperty.of("java.version"), this.buildProperties.getVersions().put(VersionProperty.of("java.version"),
this::getJavaVersion); this::getJavaVersion);
if ("kotlin".equals(getLanguage())) { if ("kotlin".equals(getLanguage())) {

View File

@@ -495,6 +495,10 @@ public class InitializrConfiguration {
*/ */
public static class Maven { public static class Maven {
private static final String DEFAULT_PARENT_GROUP_ID = "org.springframework.boot";
private static final String DEFAULT_PARENT_ARTIFACT_ID = "spring-boot-starter-parent";
/** /**
* Custom parent pom to use for generated projects. * Custom parent pom to use for generated projects.
*/ */
@@ -519,8 +523,20 @@ public class InitializrConfiguration {
*/ */
public ParentPom resolveParentPom(String bootVersion) { public ParentPom resolveParentPom(String bootVersion) {
return (StringUtils.hasText(this.parent.groupId) ? this.parent return (StringUtils.hasText(this.parent.groupId) ? this.parent
: new ParentPom("org.springframework.boot", : new ParentPom(DEFAULT_PARENT_GROUP_ID,
"spring-boot-starter-parent", bootVersion)); DEFAULT_PARENT_ARTIFACT_ID, bootVersion));
}
/**
* Check if the specified {@link ParentPom} is the default spring boot starter
* parent.
* @param parentPom the parent pom to check
* @return {@code true} if the {@code parentPom} is the spring boot starter
* parent
*/
public boolean isSpringBootStarterParent(ParentPom parentPom) {
return DEFAULT_PARENT_GROUP_ID.equals(parentPom.getGroupId())
&& DEFAULT_PARENT_ARTIFACT_ID.equals(parentPom.getArtifactId());
} }
/** /**

View File

@@ -384,7 +384,9 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
@Test @Test
public void defaultMavenPomHasSpringBootParent() { public void defaultMavenPomHasSpringBootParent() {
ProjectRequest request = createProjectRequest("web"); ProjectRequest request = createProjectRequest("web");
generateMavenPom(request).hasSpringBootParent(request.getBootVersion()); generateMavenPom(request).hasSpringBootParent(request.getBootVersion())
.hasNoProperty("project.build.sourceEncoding")
.hasNoProperty("project.reporting.outputEncoding");
} }
@Test @Test
@@ -395,7 +397,8 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
applyMetadata(metadata); applyMetadata(metadata);
ProjectRequest request = createProjectRequest("web"); ProjectRequest request = createProjectRequest("web");
generateMavenPom(request).hasParent("com.foo", "foo-parent", "1.0.0-SNAPSHOT") generateMavenPom(request).hasParent("com.foo", "foo-parent", "1.0.0-SNAPSHOT")
.hasBomsCount(0); .hasBomsCount(0).hasProperty("project.build.sourceEncoding", "UTF-8")
.hasProperty("project.reporting.outputEncoding", "UTF-8");
} }
@Test @Test
@@ -410,7 +413,8 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
.hasProperty("spring-boot.version", "1.5.17.RELEASE") .hasProperty("spring-boot.version", "1.5.17.RELEASE")
.hasBom("org.springframework.boot", "spring-boot-dependencies", .hasBom("org.springframework.boot", "spring-boot-dependencies",
"${spring-boot.version}") "${spring-boot.version}")
.hasBomsCount(1); .hasBomsCount(1).hasProperty("project.build.sourceEncoding", "UTF-8")
.hasProperty("project.reporting.outputEncoding", "UTF-8");
} }
@Test @Test

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<kotlin.version>1.1.1</kotlin.version> <kotlin.version>1.1.1</kotlin.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<kotlin.version>1.1.1</kotlin.version> <kotlin.version>1.1.1</kotlin.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<kotlin.version>1.1.1</kotlin.version> <kotlin.version>1.1.1</kotlin.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<foo.version>1.3.3</foo.version> <foo.version>1.3.3</foo.version>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>11</java.version> <java.version>11</java.version>
<kotlin.version>1.1.1</kotlin.version> <kotlin.version>1.1.1</kotlin.version>
</properties> </properties>

View File

@@ -16,8 +16,6 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-bar.version>0.2.0.RELEASE</spring-bar.version> <spring-bar.version>0.2.0.RELEASE</spring-bar.version>
<spring-foo.version>0.1.0.RELEASE</spring-foo.version> <spring-foo.version>0.1.0.RELEASE</spring-foo.version>