mirror of
https://gitee.com/dcren/initializr.git
synced 2025-04-05 17:38:06 +08:00
Merge pull request #1386 from KotlinIsland
* gh-1386: Polish "Vary Kotlin stdlib artifact ID depending on the version of Kotlin" Vary Kotlin stdlib artifact ID depending on the version of Kotlin Closes gh-1386
This commit is contained in:
commit
b527d1d9a6
@ -20,6 +20,8 @@ import io.spring.initializr.generator.buildsystem.Dependency;
|
||||
import io.spring.initializr.generator.buildsystem.DependencyScope;
|
||||
import io.spring.initializr.generator.buildsystem.maven.MavenBuild;
|
||||
import io.spring.initializr.generator.spring.build.BuildCustomizer;
|
||||
import io.spring.initializr.generator.version.Version;
|
||||
import io.spring.initializr.generator.version.VersionRange;
|
||||
|
||||
/**
|
||||
* {@link BuildCustomizer} for Kotlin projects build with Maven when Kotlin is supported
|
||||
@ -32,6 +34,8 @@ import io.spring.initializr.generator.spring.build.BuildCustomizer;
|
||||
*/
|
||||
class KotlinMavenBuildCustomizer implements BuildCustomizer<MavenBuild> {
|
||||
|
||||
private static final VersionRange KOTLIN_ONE_EIGHT_OR_LATER = new VersionRange(Version.parse("1.8.0"));
|
||||
|
||||
private final KotlinProjectSettings settings;
|
||||
|
||||
KotlinMavenBuildCustomizer(KotlinProjectSettings kotlinProjectSettings) {
|
||||
@ -52,8 +56,11 @@ 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 artifactId = KotlinMavenBuildCustomizer.KOTLIN_ONE_EIGHT_OR_LATER
|
||||
.match(Version.parse(this.settings.getVersion())) ? "kotlin-stdlib" : "kotlin-stdlib-jdk8";
|
||||
build.dependencies().add("kotlin-stdlib",
|
||||
Dependency.withCoordinates("org.jetbrains.kotlin", artifactId).scope(DependencyScope.COMPILE));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ class KotlinMavenBuildCustomizerTests {
|
||||
@Test
|
||||
void kotlinMavenPluginWithSeveralArgs() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
new KotlinMavenBuildCustomizer(new TestKotlinProjectSettings()).customize(build);
|
||||
new KotlinMavenBuildCustomizer(new KotlinOneEightProjectSettings()).customize(build);
|
||||
assertThat(build.plugins().values()).singleElement().satisfies((kotlinPlugin) -> {
|
||||
Configuration configuration = kotlinPlugin.getConfiguration();
|
||||
Setting args = configuration.getSettings().get(0);
|
||||
@ -100,9 +100,21 @@ class KotlinMavenBuildCustomizerTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void kotlinMavenKotlinStdlibIsConfigured() {
|
||||
void kotlinMavenKotlinStdlibIsConfiguredWithKotlinOneEight() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
new KotlinMavenBuildCustomizer(new TestKotlinProjectSettings()).customize(build);
|
||||
new KotlinMavenBuildCustomizer(new KotlinOneEightProjectSettings()).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");
|
||||
assertThat(kotlinStdlib.getVersion()).isNull();
|
||||
assertThat(kotlinStdlib.getScope()).isEqualTo(DependencyScope.COMPILE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void kotlinMavenKotlinStdlibJdk8IsConfiguredWithKotlinOneSeven() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
new KotlinMavenBuildCustomizer(new KotlinOneSevenProjectSettings()).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");
|
||||
@ -111,10 +123,23 @@ class KotlinMavenBuildCustomizerTests {
|
||||
assertThat(kotlinStdlib.getScope()).isEqualTo(DependencyScope.COMPILE);
|
||||
}
|
||||
|
||||
private static class TestKotlinProjectSettings extends SimpleKotlinProjectSettings {
|
||||
private static class KotlinOneEightProjectSettings extends SimpleKotlinProjectSettings {
|
||||
|
||||
TestKotlinProjectSettings() {
|
||||
super("1.3.20");
|
||||
KotlinOneEightProjectSettings() {
|
||||
super("1.8.0");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getCompilerArgs() {
|
||||
return Arrays.asList("-Done=1", "-Dtwo=2");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static class KotlinOneSevenProjectSettings extends SimpleKotlinProjectSettings {
|
||||
|
||||
KotlinOneSevenProjectSettings() {
|
||||
super("1.7.22");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user