mirror of
https://gitee.com/dcren/initializr.git
synced 2025-09-19 01:58:16 +08:00
Restore the ability to generate several parameters with the same name
This commit fixes the handling of configuration parameters so that nested groups can be reused when requested with the same parameter name. However, single parameters are additive. Closes gh-867
This commit is contained in:
@@ -41,9 +41,9 @@ public class KotlinJpaMavenBuildCustomizer implements BuildCustomizer<MavenBuild
|
||||
if (this.buildMetadataResolver.hasFacet(build, "jpa")) {
|
||||
MavenPlugin kotlinNoArgPlugin = build.plugin("org.jetbrains.kotlin",
|
||||
"kotlin-maven-noarg", "${kotlin.version}");
|
||||
kotlinNoArgPlugin.configuration((configuration) -> configuration.parameter(
|
||||
"compilerPlugins",
|
||||
(compilerPlugins) -> compilerPlugins.parameter("plugin", "jpa")));
|
||||
kotlinNoArgPlugin.configuration(
|
||||
(configuration) -> configuration.configure("compilerPlugins",
|
||||
(compilerPlugins) -> compilerPlugins.add("plugin", "jpa")));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -45,10 +45,10 @@ class KotlinMavenBuildCustomizer implements BuildCustomizer<MavenBuild> {
|
||||
MavenPlugin kotlinMavenPlugin = build.plugin("org.jetbrains.kotlin",
|
||||
"kotlin-maven-plugin");
|
||||
kotlinMavenPlugin.configuration((configuration) -> {
|
||||
configuration.parameter("args", (args) -> this.settings.getCompilerArgs()
|
||||
.forEach((arg) -> args.parameter("arg", arg)));
|
||||
configuration.parameter("compilerPlugins",
|
||||
(compilerPlugins) -> compilerPlugins.parameter("plugin", "spring"));
|
||||
configuration.configure("args", (args) -> this.settings.getCompilerArgs()
|
||||
.forEach((arg) -> args.add("arg", arg)));
|
||||
configuration.configure("compilerPlugins",
|
||||
(compilerPlugins) -> compilerPlugins.add("plugin", "spring"));
|
||||
});
|
||||
kotlinMavenPlugin.dependency("org.jetbrains.kotlin", "kotlin-maven-allopen",
|
||||
"${kotlin.version}");
|
||||
|
@@ -42,11 +42,11 @@ class KotlinMavenFullBuildCustomizer implements BuildCustomizer<MavenBuild> {
|
||||
MavenPlugin kotlinMavenPlugin = build.plugin("org.jetbrains.kotlin",
|
||||
"kotlin-maven-plugin", "${kotlin.version}");
|
||||
kotlinMavenPlugin.configuration((configuration) -> {
|
||||
configuration.parameter("args", (args) -> this.settings.getCompilerArgs()
|
||||
.forEach((arg) -> args.parameter("arg", arg)));
|
||||
configuration.parameter("compilerPlugins",
|
||||
(compilerPlugins) -> compilerPlugins.parameter("plugin", "spring"));
|
||||
configuration.parameter("jvmTarget", this.settings.getJvmTarget());
|
||||
configuration.configure("args", (args) -> this.settings.getCompilerArgs()
|
||||
.forEach((arg) -> args.add("arg", arg)));
|
||||
configuration.configure("compilerPlugins",
|
||||
(compilerPlugins) -> compilerPlugins.add("plugin", "spring"));
|
||||
configuration.add("jvmTarget", this.settings.getJvmTarget());
|
||||
});
|
||||
kotlinMavenPlugin.execution("compile",
|
||||
(compile) -> compile.phase("compile").goal("compile"));
|
||||
|
@@ -16,6 +16,9 @@
|
||||
|
||||
package io.spring.initializr.generator.spring.code.kotlin;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import io.spring.initializr.generator.buildsystem.maven.MavenBuild;
|
||||
import io.spring.initializr.generator.buildsystem.maven.MavenPlugin;
|
||||
import io.spring.initializr.generator.buildsystem.maven.MavenPlugin.Configuration;
|
||||
@@ -85,4 +88,33 @@ class KotlinMavenBuildCustomizerTests {
|
||||
assertThat(allOpen.getVersion()).isEqualTo("${kotlin.version}");
|
||||
}
|
||||
|
||||
@Test
|
||||
void kotlinMavenPluginWithSeveralArgs() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
new KotlinMavenBuildCustomizer(new TestKotlinProjectSettings()).customize(build);
|
||||
Configuration configuration = build.getPlugins().get(0).getConfiguration();
|
||||
Setting args = configuration.getSettings().get(0);
|
||||
assertThat(args.getName()).isEqualTo("args");
|
||||
assertThat(args.getValue()).asList().hasSize(2);
|
||||
assertThat(args.getValue()).asList().element(0)
|
||||
.hasFieldOrPropertyWithValue("name", "arg")
|
||||
.hasFieldOrPropertyWithValue("value", "-Done=1");
|
||||
assertThat(args.getValue()).asList().element(1)
|
||||
.hasFieldOrPropertyWithValue("name", "arg")
|
||||
.hasFieldOrPropertyWithValue("value", "-Dtwo=2");
|
||||
}
|
||||
|
||||
private static class TestKotlinProjectSettings extends SimpleKotlinProjectSettings {
|
||||
|
||||
TestKotlinProjectSettings() {
|
||||
super("1.3.20");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getCompilerArgs() {
|
||||
return Arrays.asList("-Done=1", "-Dtwo=2");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user