mirror of
https://gitee.com/dcren/initializr.git
synced 2025-09-18 09:44:47 +08:00
Move general build settings to immutable class
This commit moves the global build settings to an immutable BuildSettings abstraction. See gh-996
This commit is contained in:
@@ -38,9 +38,8 @@ public class SimpleBuildCustomizer implements BuildCustomizer<Build> {
|
||||
|
||||
@Override
|
||||
public void customize(Build build) {
|
||||
build.setGroup(this.description.getGroupId());
|
||||
build.setArtifact(this.description.getArtifactId());
|
||||
build.setVersion(this.description.getVersion());
|
||||
build.settings().group(this.description.getGroupId()).artifact(this.description.getArtifactId())
|
||||
.version(this.description.getVersion());
|
||||
this.description.getRequestedDependencies()
|
||||
.forEach((id, dependency) -> build.dependencies().add(id, dependency));
|
||||
}
|
||||
|
@@ -42,7 +42,7 @@ class Gradle3SettingsGradleProjectContributor implements ProjectContributor {
|
||||
public void contribute(Path projectRoot) throws IOException {
|
||||
Path file = Files.createFile(projectRoot.resolve("settings.gradle"));
|
||||
try (PrintWriter writer = new PrintWriter(Files.newOutputStream(file))) {
|
||||
writer.println("rootProject.name = '" + this.build.getArtifact() + "'");
|
||||
writer.println("rootProject.name = '" + this.build.getSettings().getArtifact() + "'");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -79,7 +79,7 @@ public class GradleProjectGenerationConfiguration {
|
||||
|
||||
@Bean
|
||||
public BuildCustomizer<GradleBuild> defaultGradleBuildCustomizer(ProjectDescription description) {
|
||||
return (build) -> build.setSourceCompatibility(description.getLanguage().jvmVersion());
|
||||
return (build) -> build.settings().sourceCompatibility(description.getLanguage().jvmVersion());
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
@@ -43,8 +43,7 @@ public class DefaultMavenBuildCustomizer implements BuildCustomizer<MavenBuild>
|
||||
|
||||
@Override
|
||||
public void customize(MavenBuild build) {
|
||||
build.setName(this.description.getName());
|
||||
build.setDescription(this.description.getDescription());
|
||||
build.settings().name(this.description.getName()).description(this.description.getDescription());
|
||||
build.setProperty("java.version", this.description.getLanguage().jvmVersion());
|
||||
build.plugins().add("org.springframework.boot", "spring-boot-maven-plugin");
|
||||
|
||||
@@ -64,7 +63,7 @@ public class DefaultMavenBuildCustomizer implements BuildCustomizer<MavenBuild>
|
||||
build.setProperty("project.build.sourceEncoding", "UTF-8");
|
||||
build.setProperty("project.reporting.outputEncoding", "UTF-8");
|
||||
}
|
||||
build.parent(parentPom.getGroupId(), parentPom.getArtifactId(), parentPom.getVersion());
|
||||
build.settings().parent(parentPom.getGroupId(), parentPom.getArtifactId(), parentPom.getVersion());
|
||||
}
|
||||
|
||||
private boolean hasBom(MavenBuild build, BillOfMaterials bom) {
|
||||
|
@@ -72,7 +72,7 @@ public class MavenProjectGenerationConfiguration {
|
||||
@Bean
|
||||
@ConditionalOnPackaging(WarPackaging.ID)
|
||||
public BuildCustomizer<MavenBuild> mavenWarPackagingConfigurer() {
|
||||
return (build) -> build.setPackaging("war");
|
||||
return (build) -> build.settings().packaging("war");
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -39,8 +39,8 @@ class KotlinMavenBuildCustomizer implements BuildCustomizer<MavenBuild> {
|
||||
@Override
|
||||
public void customize(MavenBuild build) {
|
||||
build.setProperty("kotlin.version", this.settings.getVersion());
|
||||
build.setSourceDirectory("${project.basedir}/src/main/kotlin");
|
||||
build.setTestSourceDirectory("${project.basedir}/src/test/kotlin");
|
||||
build.settings().sourceDirectory("${project.basedir}/src/main/kotlin")
|
||||
.testSourceDirectory("${project.basedir}/src/test/kotlin");
|
||||
build.plugins().add("org.jetbrains.kotlin", "kotlin-maven-plugin", (kotlinMavenPlugin) -> {
|
||||
kotlinMavenPlugin.configuration((configuration) -> {
|
||||
configuration.configure("args",
|
||||
|
@@ -36,8 +36,8 @@ class KotlinMavenFullBuildCustomizer implements BuildCustomizer<MavenBuild> {
|
||||
@Override
|
||||
public void customize(MavenBuild build) {
|
||||
build.setProperty("kotlin.version", this.settings.getVersion());
|
||||
build.setSourceDirectory("${project.basedir}/src/main/kotlin");
|
||||
build.setTestSourceDirectory("${project.basedir}/src/test/kotlin");
|
||||
build.settings().sourceDirectory("${project.basedir}/src/main/kotlin")
|
||||
.testSourceDirectory("${project.basedir}/src/test/kotlin");
|
||||
build.plugins().add("org.jetbrains.kotlin", "kotlin-maven-plugin", (kotlinMavenPlugin) -> {
|
||||
kotlinMavenPlugin.setVersion("${kotlin.version}");
|
||||
kotlinMavenPlugin.configuration((configuration) -> {
|
||||
|
@@ -40,8 +40,8 @@ class SimpleBuildCustomizerTests {
|
||||
description.setGroupId("com.example.acme");
|
||||
description.setArtifactId("my-test-project");
|
||||
MavenBuild build = customizeBuild(description);
|
||||
assertThat(build.getGroup()).isEqualTo("com.example.acme");
|
||||
assertThat(build.getArtifact()).isEqualTo("my-test-project");
|
||||
assertThat(build.getSettings().getGroup()).isEqualTo("com.example.acme");
|
||||
assertThat(build.getSettings().getArtifact()).isEqualTo("my-test-project");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -49,7 +49,7 @@ class SimpleBuildCustomizerTests {
|
||||
MutableProjectDescription description = initializeDescription();
|
||||
description.setVersion("1.5.6.RELEASE");
|
||||
MavenBuild build = customizeBuild(description);
|
||||
assertThat(build.getVersion()).isEqualTo("1.5.6.RELEASE");
|
||||
assertThat(build.getSettings().getVersion()).isEqualTo("1.5.6.RELEASE");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -53,8 +53,7 @@ class GradleBuildProjectContributorTests {
|
||||
@Test
|
||||
void groovyDslGradleBuildIsContributedToProject() throws IOException {
|
||||
GradleBuild build = new GradleBuild();
|
||||
build.setGroup("com.example");
|
||||
build.setVersion("1.0.0-SNAPSHOT");
|
||||
build.settings().group("com.example").version("1.0.0-SNAPSHOT");
|
||||
build.buildscript((buildscript) -> buildscript.ext("someVersion", "'1.2.3'"));
|
||||
List<String> lines = generateBuild(
|
||||
groovyDslGradleBuildProjectContributor(build, IndentingWriterFactory.withDefaultSettings()));
|
||||
@@ -84,8 +83,7 @@ class GradleBuildProjectContributorTests {
|
||||
@Test
|
||||
void kotlinDslGradleBuildIsContributedToProject() throws IOException {
|
||||
GradleBuild build = new GradleBuild();
|
||||
build.setGroup("com.example");
|
||||
build.setVersion("1.0.0-SNAPSHOT");
|
||||
build.settings().group("com.example").version("1.0.0-SNAPSHOT");
|
||||
List<String> lines = generateBuild(
|
||||
kotlinDslGradleBuildProjectContributor(build, IndentingWriterFactory.withDefaultSettings()));
|
||||
assertThat(lines).containsSequence("group = \"com.example\"", "version = \"1.0.0-SNAPSHOT\"");
|
||||
|
@@ -44,8 +44,8 @@ class DefaultMavenBuildCustomizerTests {
|
||||
description.setName("my-demo");
|
||||
description.setDescription("Demonstration project");
|
||||
MavenBuild build = customizeBuild(metadata, description);
|
||||
assertThat(build.getName()).isEqualTo("my-demo");
|
||||
assertThat(build.getDescription()).isEqualTo("Demonstration project");
|
||||
assertThat(build.getSettings().getName()).isEqualTo("my-demo");
|
||||
assertThat(build.getSettings().getDescription()).isEqualTo("Demonstration project");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -72,7 +72,7 @@ class DefaultMavenBuildCustomizerTests {
|
||||
void customizeWhenNoParentShouldUseSpringBootParent() {
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults().build();
|
||||
MavenBuild build = customizeBuild(metadata);
|
||||
MavenParent parent = build.getParent();
|
||||
MavenParent parent = build.getSettings().getParent();
|
||||
assertThat(parent.getGroupId()).isEqualTo("org.springframework.boot");
|
||||
assertThat(parent.getArtifactId()).isEqualTo("spring-boot-starter-parent");
|
||||
assertThat(parent.getVersion()).isEqualTo("2.0.0");
|
||||
@@ -83,7 +83,7 @@ class DefaultMavenBuildCustomizerTests {
|
||||
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||
.setMavenParent("com.foo", "foo-parent", "1.0.0-SNAPSHOT", true).build();
|
||||
MavenBuild build = customizeBuild(metadata);
|
||||
MavenParent parent = build.getParent();
|
||||
MavenParent parent = build.getSettings().getParent();
|
||||
assertThat(parent.getGroupId()).isEqualTo("com.foo");
|
||||
assertThat(parent.getArtifactId()).isEqualTo("foo-parent");
|
||||
assertThat(parent.getVersion()).isEqualTo("1.0.0-SNAPSHOT");
|
||||
|
@@ -49,9 +49,8 @@ class MavenBuildProjectContributorTests {
|
||||
@Test
|
||||
void pomIsContributedToProject() throws Exception {
|
||||
MavenBuild build = new MavenBuild();
|
||||
build.setGroup("com.example.demo");
|
||||
build.setArtifact("demo");
|
||||
build.parent("org.springframework.boot", "spring-boot-starter-parent", "2.1.0.RELEASE");
|
||||
build.settings().coordinates("com.example.demo", "demo").parent("org.springframework.boot",
|
||||
"spring-boot-starter-parent", "2.1.0.RELEASE");
|
||||
List<String> lines = generatePom(build);
|
||||
assertThat(lines).containsSequence(" <parent>", " <groupId>org.springframework.boot</groupId>",
|
||||
" <artifactId>spring-boot-starter-parent</artifactId>",
|
||||
@@ -63,9 +62,8 @@ class MavenBuildProjectContributorTests {
|
||||
IndentingWriterFactory indentingWriterFactory = IndentingWriterFactory.create(new SimpleIndentStrategy(" "),
|
||||
(factory) -> factory.indentingStrategy("maven", new SimpleIndentStrategy("\t")));
|
||||
MavenBuild build = new MavenBuild();
|
||||
build.setGroup("com.example.demo");
|
||||
build.setArtifact("demo");
|
||||
build.parent("org.springframework.boot", "spring-boot-starter-parent", "2.1.0.RELEASE");
|
||||
build.settings().coordinates("com.example.demo", "demo").parent("org.springframework.boot",
|
||||
"spring-boot-starter-parent", "2.1.0.RELEASE");
|
||||
List<String> lines = generatePom(build, indentingWriterFactory);
|
||||
assertThat(lines).containsSequence("\t<parent>", "\t\t<groupId>org.springframework.boot</groupId>",
|
||||
"\t\t<artifactId>spring-boot-starter-parent</artifactId>", "\t\t<version>2.1.0.RELEASE</version>");
|
||||
|
@@ -46,8 +46,8 @@ class KotlinMavenBuildCustomizerTests {
|
||||
void buildSourceDirectoriesAreConfigured() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
new KotlinMavenBuildCustomizer(new SimpleKotlinProjectSettings("1.2.70")).customize(build);
|
||||
assertThat(build.getSourceDirectory()).isEqualTo("${project.basedir}/src/main/kotlin");
|
||||
assertThat(build.getTestSourceDirectory()).isEqualTo("${project.basedir}/src/test/kotlin");
|
||||
assertThat(build.getSettings().getSourceDirectory()).isEqualTo("${project.basedir}/src/main/kotlin");
|
||||
assertThat(build.getSettings().getTestSourceDirectory()).isEqualTo("${project.basedir}/src/test/kotlin");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -44,8 +44,8 @@ class KotlinMavenFullBuildCustomizerTests {
|
||||
void buildSourceDirectoriesAreConfigured() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
new KotlinMavenFullBuildCustomizer(new SimpleKotlinProjectSettings("1.2.70")).customize(build);
|
||||
assertThat(build.getSourceDirectory()).isEqualTo("${project.basedir}/src/main/kotlin");
|
||||
assertThat(build.getTestSourceDirectory()).isEqualTo("${project.basedir}/src/test/kotlin");
|
||||
assertThat(build.getSettings().getSourceDirectory()).isEqualTo("${project.basedir}/src/main/kotlin");
|
||||
assertThat(build.getSettings().getTestSourceDirectory()).isEqualTo("${project.basedir}/src/test/kotlin");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user