Vary Kotlin stdlib artifact ID depending on the version of Kotlin

See gh-1386
This commit is contained in:
KotlinIsland 2023-02-27 12:55:39 +10:00 committed by Andy Wilkinson
parent d312fe8377
commit 59e50daf54
2 changed files with 33 additions and 3 deletions

View File

@ -52,8 +52,13 @@ class KotlinMavenBuildCustomizer implements BuildCustomizer<MavenBuild> {
});
kotlinMavenPlugin.dependency("org.jetbrains.kotlin", "kotlin-maven-allopen", "${kotlin.version}");
});
build.dependencies().add("kotlin-stdlib", Dependency
.withCoordinates("org.jetbrains.kotlin", "kotlin-stdlib-jdk8").scope(DependencyScope.COMPILE));
String[] version = this.settings.getVersion().split("\\.");
String artifactId = (Integer.parseInt(version[0]) >= 2
|| Integer.parseInt(version[0]) == 1 && Integer.parseInt(version[1]) >= 8) ? "kotlin-stdlib"
: "kotlin-stdlib-jdk8";
build.dependencies().add("kotlin-stdlib",
Dependency.withCoordinates("org.jetbrains.kotlin", artifactId).scope(DependencyScope.COMPILE));
}
}

View File

@ -106,7 +106,19 @@ class KotlinMavenBuildCustomizerTests {
assertThat(build.dependencies().ids()).containsOnly("kotlin-stdlib");
io.spring.initializr.generator.buildsystem.Dependency kotlinStdlib = build.dependencies().get("kotlin-stdlib");
assertThat(kotlinStdlib.getGroupId()).isEqualTo("org.jetbrains.kotlin");
assertThat(kotlinStdlib.getArtifactId()).isEqualTo("kotlin-stdlib-jdk8");
assertThat(kotlinStdlib.getArtifactId()).isEqualTo("kotlin-stdlib");
assertThat(kotlinStdlib.getVersion()).isNull();
assertThat(kotlinStdlib.getScope()).isEqualTo(DependencyScope.COMPILE);
}
@Test
void kotlinMavenKotlinStdlibIsConfiguredWithOldKotlin() {
MavenBuild build = new MavenBuild();
new KotlinMavenBuildCustomizer(new TestKotlinProjectSettingsOldKotlin()).customize(build);
assertThat(build.dependencies().ids()).containsOnly("kotlin-stdlib");
io.spring.initializr.generator.buildsystem.Dependency kotlinStdlib = build.dependencies().get("kotlin-stdlib");
assertThat(kotlinStdlib.getGroupId()).isEqualTo("org.jetbrains.kotlin");
assertThat(kotlinStdlib.getArtifactId()).isEqualTo("kotlin-stdlib-jvm8");
assertThat(kotlinStdlib.getVersion()).isNull();
assertThat(kotlinStdlib.getScope()).isEqualTo(DependencyScope.COMPILE);
}
@ -114,6 +126,19 @@ class KotlinMavenBuildCustomizerTests {
private static class TestKotlinProjectSettings extends SimpleKotlinProjectSettings {
TestKotlinProjectSettings() {
super("1.8.10");
}
@Override
public List<String> getCompilerArgs() {
return Arrays.asList("-Done=1", "-Dtwo=2");
}
}
private static class TestKotlinProjectSettingsOldKotlin extends SimpleKotlinProjectSettings {
TestKotlinProjectSettingsOldKotlin() {
super("1.3.20");
}