diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt index 97c4eb7709e..f4f616c169d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt @@ -61,8 +61,13 @@ class KotlinMavenArchetypesProvider(val kotlinPluginVersion: String) : MavenArch .map { it.asJsonObject } .map { MavenArchetype(it.get("g").asString, it.get("a").asString, it.get("v").asString, null, null) } .filter { it.version?.startsWith(versionPrefix) ?: false } - .maxBy { MavenVersionComparable(it.version) } - .let { listOfNotNull(it) } + .groupBy { it.groupId + ":" + it.artifactId } + .mapValues { chooseVersion(it.value) } + .mapNotNull { it.value } + + private fun chooseVersion(versions: List): MavenArchetype? { + return versions.maxBy { MavenVersionComparable(it.version) } + } private fun mavenSearchUrl(group: String, artifactId: String? = null, version: String? = null, packaging: String? = null, rowsLimit: Int = 20): String { val q = listOf( diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt index 48af5af2e77..a7e73773899 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt @@ -39,7 +39,8 @@ class KotlinMavenArchetypesProviderTest { assertEquals( listOf( - MavenArchetype("org.jetbrains.kotlin", "kotlin-archetype-jvm", "1.0.1-2", null, null) + MavenArchetype("org.jetbrains.kotlin", "kotlin-archetype-jvm", "1.0.1-2", null, null), + MavenArchetype("org.jetbrains.kotlin", "kotlin-archetype-js", "1.0.0", null, null) ).sortedBy { it.artifactId + "." + it.version }, versions.sortedBy { it.artifactId + "." + it.version } )