Fix Maven Kotlin JPA compiler plugin configuration

See gh-868
This commit is contained in:
Sebastien Deleuze 2019-03-14 18:56:48 +01:00 committed by Stephane Nicoll
parent 0ecdf3097a
commit b8e21636de
2 changed files with 13 additions and 6 deletions

View File

@ -27,6 +27,7 @@ import io.spring.initializr.metadata.InitializrMetadata;
* related dependency is present. * related dependency is present.
* *
* @author Madhura Bhave * @author Madhura Bhave
* @author Sebastien Deleuze
*/ */
public class KotlinJpaMavenBuildCustomizer implements BuildCustomizer<MavenBuild> { public class KotlinJpaMavenBuildCustomizer implements BuildCustomizer<MavenBuild> {
@ -39,11 +40,13 @@ public class KotlinJpaMavenBuildCustomizer implements BuildCustomizer<MavenBuild
@Override @Override
public void customize(MavenBuild build) { public void customize(MavenBuild build) {
if (this.buildMetadataResolver.hasFacet(build, "jpa")) { if (this.buildMetadataResolver.hasFacet(build, "jpa")) {
MavenPlugin kotlinNoArgPlugin = build.plugin("org.jetbrains.kotlin", MavenPlugin kotlinPlugin = build.plugin("org.jetbrains.kotlin",
"kotlin-maven-noarg", "${kotlin.version}"); "kotlin-maven-plugin");
kotlinNoArgPlugin.configuration( kotlinPlugin.configuration(
(configuration) -> configuration.configure("compilerPlugins", (configuration) -> configuration.configure("compilerPlugins",
(compilerPlugins) -> compilerPlugins.add("plugin", "jpa"))); (compilerPlugins) -> compilerPlugins.add("plugin", "jpa")));
kotlinPlugin.dependency("org.jetbrains.kotlin", "kotlin-maven-noarg",
"${kotlin.version}");
} }
} }

View File

@ -29,9 +29,10 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Tests for {@link KotlinJpaGradleBuildCustomizer}. * Tests for {@link KotlinJpaMavenBuildCustomizer}.
* *
* @author Madhura Bhave * @author Madhura Bhave
* @author Sebastien Deleuze
*/ */
class KotlinJpaMavenBuildCustomizerTests { class KotlinJpaMavenBuildCustomizerTests {
@ -43,12 +44,15 @@ class KotlinJpaMavenBuildCustomizerTests {
assertThat(build.getPlugins()).hasSize(1); assertThat(build.getPlugins()).hasSize(1);
MavenPlugin plugin = build.getPlugins().get(0); MavenPlugin plugin = build.getPlugins().get(0);
assertThat(plugin.getGroupId()).isEqualTo("org.jetbrains.kotlin"); assertThat(plugin.getGroupId()).isEqualTo("org.jetbrains.kotlin");
assertThat(plugin.getArtifactId()).isEqualTo("kotlin-maven-noarg"); assertThat(plugin.getArtifactId()).isEqualTo("kotlin-maven-plugin");
assertThat(plugin.getVersion()).isEqualTo("${kotlin.version}");
MavenPlugin.Setting settings = plugin.getConfiguration().getSettings().get(0); MavenPlugin.Setting settings = plugin.getConfiguration().getSettings().get(0);
assertThat(settings.getValue()).asList().element(0) assertThat(settings.getValue()).asList().element(0)
.hasFieldOrPropertyWithValue("name", "plugin") .hasFieldOrPropertyWithValue("name", "plugin")
.hasFieldOrPropertyWithValue("value", "jpa"); .hasFieldOrPropertyWithValue("value", "jpa");
MavenPlugin.Dependency pluginDependency = plugin.getDependencies().get(0);
assertThat(pluginDependency.getGroupId()).isEqualTo("org.jetbrains.kotlin");
assertThat(pluginDependency.getArtifactId()).isEqualTo("kotlin-maven-noarg");
assertThat(pluginDependency.getVersion()).isEqualTo("${kotlin.version}");
} }
@Test @Test