diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectGenerator.java b/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectGenerator.java
index faf845a2..c7144db2 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectGenerator.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectGenerator.java
@@ -34,6 +34,7 @@ import java.util.stream.Collectors;
import io.spring.initializr.InitializrException;
import io.spring.initializr.metadata.BillOfMaterials;
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.InitializrMetadata;
import io.spring.initializr.metadata.InitializrMetadataProvider;
@@ -364,14 +365,19 @@ public class ProjectGenerator {
if (isMavenBuild(request)) {
model.put("mavenBuild", true);
- ParentPom parentPom = metadata.getConfiguration().getEnv().getMaven()
- .resolveParentPom(request.getBootVersion());
+ Maven maven = metadata.getConfiguration().getEnv().getMaven();
+ ParentPom parentPom = maven.resolveParentPom(request.getBootVersion());
if (parentPom.isIncludeSpringBootBom()
&& !request.getBoms().containsKey("spring-boot")) {
request.getBoms().put("spring-boot", metadata.createSpringBootBom(
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("mavenParentArtifactId", parentPom.getArtifactId());
model.put("mavenParentVersion", parentPom.getVersion());
diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectRequest.java b/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectRequest.java
index 925eb9ef..0764e306 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectRequest.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/generator/ProjectRequest.java
@@ -239,10 +239,6 @@ public class ProjectRequest extends BasicProjectRequest {
}
}
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::getJavaVersion);
if ("kotlin".equals(getLanguage())) {
diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java b/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java
index 006c1a4e..5b200756 100644
--- a/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java
+++ b/initializr-generator/src/main/java/io/spring/initializr/metadata/InitializrConfiguration.java
@@ -495,6 +495,10 @@ public class InitializrConfiguration {
*/
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.
*/
@@ -519,8 +523,20 @@ public class InitializrConfiguration {
*/
public ParentPom resolveParentPom(String bootVersion) {
return (StringUtils.hasText(this.parent.groupId) ? this.parent
- : new ParentPom("org.springframework.boot",
- "spring-boot-starter-parent", bootVersion));
+ : new ParentPom(DEFAULT_PARENT_GROUP_ID,
+ 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());
}
/**
diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java
index 64247a96..ae16d606 100755
--- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java
+++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java
@@ -384,7 +384,9 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
@Test
public void defaultMavenPomHasSpringBootParent() {
ProjectRequest request = createProjectRequest("web");
- generateMavenPom(request).hasSpringBootParent(request.getBootVersion());
+ generateMavenPom(request).hasSpringBootParent(request.getBootVersion())
+ .hasNoProperty("project.build.sourceEncoding")
+ .hasNoProperty("project.reporting.outputEncoding");
}
@Test
@@ -395,7 +397,8 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
applyMetadata(metadata);
ProjectRequest request = createProjectRequest("web");
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
@@ -410,7 +413,8 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
.hasProperty("spring-boot.version", "1.5.17.RELEASE")
.hasBom("org.springframework.boot", "spring-boot-dependencies",
"${spring-boot.version}")
- .hasBomsCount(1);
+ .hasBomsCount(1).hasProperty("project.build.sourceEncoding", "UTF-8")
+ .hasProperty("project.reporting.outputEncoding", "UTF-8");
}
@Test
diff --git a/initializr-generator/src/test/resources/project/groovy/previous/pom.xml.gen b/initializr-generator/src/test/resources/project/groovy/previous/pom.xml.gen
index 2f117a8e..81f62978 100644
--- a/initializr-generator/src/test/resources/project/groovy/previous/pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/groovy/previous/pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/groovy/standard/pom.xml.gen b/initializr-generator/src/test/resources/project/groovy/standard/pom.xml.gen
index 10d878b3..31a3f536 100644
--- a/initializr-generator/src/test/resources/project/groovy/standard/pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/groovy/standard/pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/groovy/standard/war-pom.xml.gen b/initializr-generator/src/test/resources/project/groovy/standard/war-pom.xml.gen
index 39665d96..94d5ddfc 100644
--- a/initializr-generator/src/test/resources/project/groovy/standard/war-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/groovy/standard/war-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/java/previous/pom.xml.gen b/initializr-generator/src/test/resources/project/java/previous/pom.xml.gen
index 96237665..a3bd1ad1 100644
--- a/initializr-generator/src/test/resources/project/java/previous/pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/java/previous/pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/java/standard/pom.xml.gen b/initializr-generator/src/test/resources/project/java/standard/pom.xml.gen
index a138933e..68a54243 100644
--- a/initializr-generator/src/test/resources/project/java/standard/pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/java/standard/pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/java/standard/war-pom.xml.gen b/initializr-generator/src/test/resources/project/java/standard/war-pom.xml.gen
index abb8dee2..5aeea089 100644
--- a/initializr-generator/src/test/resources/project/java/standard/war-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/java/standard/war-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/kotlin/previous/pom.xml.gen b/initializr-generator/src/test/resources/project/kotlin/previous/pom.xml.gen
index 079e4ca1..b0dff75d 100644
--- a/initializr-generator/src/test/resources/project/kotlin/previous/pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/kotlin/previous/pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
1.1.1
diff --git a/initializr-generator/src/test/resources/project/kotlin/standard/pom.xml.gen b/initializr-generator/src/test/resources/project/kotlin/standard/pom.xml.gen
index abc0d13a..5f5fbdf2 100644
--- a/initializr-generator/src/test/resources/project/kotlin/standard/pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/kotlin/standard/pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
1.1.1
diff --git a/initializr-generator/src/test/resources/project/kotlin/standard/war-pom.xml.gen b/initializr-generator/src/test/resources/project/kotlin/standard/war-pom.xml.gen
index a9a79918..36d2f27a 100644
--- a/initializr-generator/src/test/resources/project/kotlin/standard/war-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/kotlin/standard/war-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
1.1.1
diff --git a/initializr-generator/src/test/resources/project/maven/annotation-processor-dependency-pom.xml.gen b/initializr-generator/src/test/resources/project/maven/annotation-processor-dependency-pom.xml.gen
index 21892565..ec5c3be8 100644
--- a/initializr-generator/src/test/resources/project/maven/annotation-processor-dependency-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/maven/annotation-processor-dependency-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/maven/bom-ordering-pom.xml.gen b/initializr-generator/src/test/resources/project/maven/bom-ordering-pom.xml.gen
index c5f0cef9..a9e64edc 100644
--- a/initializr-generator/src/test/resources/project/maven/bom-ordering-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/maven/bom-ordering-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/maven/bom-property-pom.xml.gen b/initializr-generator/src/test/resources/project/maven/bom-property-pom.xml.gen
index a56923a2..517be390 100644
--- a/initializr-generator/src/test/resources/project/maven/bom-property-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/maven/bom-property-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.3.3
1.8
diff --git a/initializr-generator/src/test/resources/project/maven/compile-only-dependency-pom.xml.gen b/initializr-generator/src/test/resources/project/maven/compile-only-dependency-pom.xml.gen
index 941f4818..8e579192 100644
--- a/initializr-generator/src/test/resources/project/maven/compile-only-dependency-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/maven/compile-only-dependency-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
diff --git a/initializr-generator/src/test/resources/project/maven/kotlin-java11-pom.xml.gen b/initializr-generator/src/test/resources/project/maven/kotlin-java11-pom.xml.gen
index 82523684..64064b41 100644
--- a/initializr-generator/src/test/resources/project/maven/kotlin-java11-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/maven/kotlin-java11-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
11
1.1.1
diff --git a/initializr-generator/src/test/resources/project/maven/version-override-pom.xml.gen b/initializr-generator/src/test/resources/project/maven/version-override-pom.xml.gen
index f7f1d53e..26e66fd5 100644
--- a/initializr-generator/src/test/resources/project/maven/version-override-pom.xml.gen
+++ b/initializr-generator/src/test/resources/project/maven/version-override-pom.xml.gen
@@ -16,8 +16,6 @@
Demo project for Spring Boot
- UTF-8
- UTF-8
1.8
0.2.0.RELEASE
0.1.0.RELEASE