diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt index 5e63ec4f065..ce9b9bae9c2 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt @@ -298,6 +298,17 @@ class PomFile private constructor(val xmlFile: XmlFile, val domModel: MavenDomPr return configurationTag.add(newTag) as XmlTag } + fun addPluginConfiguration(plugin: MavenDomPlugin, optionName: String, optionValue: String) { + val configurationTag = plugin.configuration.ensureTagExists() + val existingTag = configurationTag.findFirstSubTag(optionName) + if (existingTag != null) { + existingTag.value.text = optionValue + } + else { + configurationTag.add(configurationTag.createChildTag(optionName, optionValue)) + } + } + fun addPluginRepository(id: String, name: String, url: String, snapshots: Boolean = false, releases: Boolean = true): MavenDomRepository { ensurePluginRepositories() diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinJavaMavenConfigurator.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinJavaMavenConfigurator.kt index 3b99fa39192..fb2bec7e091 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinJavaMavenConfigurator.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinJavaMavenConfigurator.kt @@ -21,6 +21,7 @@ import com.intellij.openapi.roots.ModuleRootManager import org.jetbrains.idea.maven.dom.model.MavenDomPlugin import org.jetbrains.kotlin.idea.configuration.hasKotlinJvmRuntimeInScope import org.jetbrains.kotlin.idea.maven.PomFile +import org.jetbrains.kotlin.idea.versions.getDefaultJvmTarget import org.jetbrains.kotlin.idea.versions.getStdlibArtifactId import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform @@ -44,6 +45,14 @@ class KotlinJavaMavenConfigurator : KotlinMavenConfigurator(KotlinJavaMavenConfi createExecution(pomFile, kotlinPlugin, PomFile.DefaultPhases.TestCompile, PomFile.KotlinGoals.TestCompile, module, true) } + override fun configurePlugin(pom: PomFile, plugin: MavenDomPlugin, module: Module, version: String) { + val sdk = ModuleRootManager.getInstance(module).sdk + val jvmTarget = getDefaultJvmTarget(sdk, version) + if (jvmTarget != null) { + pom.addPluginConfiguration(plugin, "jvmTarget", jvmTarget.description) + } + } + override val targetPlatform: TargetPlatform get() = JvmPlatform diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinMavenConfigurator.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinMavenConfigurator.kt index 3589864a32a..7cff69dc169 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinMavenConfigurator.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/configuration/KotlinMavenConfigurator.kt @@ -160,11 +160,16 @@ abstract class KotlinMavenConfigurator val plugin = pom.addPlugin(MavenId(GROUP_ID, MAVEN_PLUGIN_ID, "\${$KOTLIN_VERSION_PROPERTY}")) createExecutions(pom, plugin, module) + configurePlugin(pom, plugin, module, version) + CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement(file) collector.addMessage(virtualFile.path + " was modified") } + protected open fun configurePlugin(pom: PomFile, plugin: MavenDomPlugin, module: Module, version: String) { + } + protected fun createExecution( pomFile: PomFile, kotlinPlugin: MavenDomPlugin, diff --git a/idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml index 6e8c30f37fd..f2c97becc48 100644 --- a/idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml @@ -13,7 +13,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib-jre8 ${kotlin.version} @@ -48,6 +48,9 @@ + + 1.8 + diff --git a/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml index c7a784fb0ee..719fe8231d6 100644 --- a/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml @@ -30,6 +30,9 @@ + + 1.8 + @@ -40,7 +43,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib-jre8 ${kotlin.version} diff --git a/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml index 399034abd02..49096ba632f 100644 --- a/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml @@ -13,7 +13,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib-jre8 ${kotlin.version} @@ -47,6 +47,9 @@ + + 1.8 + diff --git a/idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml index db9e5f1e1de..bbed4c262be 100644 --- a/idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml @@ -15,7 +15,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib-jre8 ${kotlin.version} @@ -49,6 +49,9 @@ + + 1.8 + diff --git a/idea/idea-maven/testData/configurator/jvm/simpleProjectEAP/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectEAP/pom_after.xml index 24975a87cba..7deefcb3d8c 100644 --- a/idea/idea-maven/testData/configurator/jvm/simpleProjectEAP/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/simpleProjectEAP/pom_after.xml @@ -15,7 +15,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib ${kotlin.version} diff --git a/idea/idea-maven/testData/configurator/jvm/simpleProjectRc/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectRc/pom_after.xml index c940822ae6a..dc699aec285 100644 --- a/idea/idea-maven/testData/configurator/jvm/simpleProjectRc/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/simpleProjectRc/pom_after.xml @@ -15,7 +15,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib ${kotlin.version} diff --git a/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml index 1026114e64b..a07bcf1cebd 100644 --- a/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml +++ b/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml @@ -15,7 +15,7 @@ org.jetbrains.kotlin - kotlin-stdlib-jre7 + kotlin-stdlib-jre8 ${kotlin.version} @@ -77,6 +77,9 @@ + + 1.8 +