mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] KTIJ-36184 Add required kotlin-maven-allopen dependency
GitOrigin-RevId: 09dc0abf8c4637d5a2effd9dbaf9ebbe9f4ff0e3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
254e3e83ac
commit
ee77c473f5
@@ -155,6 +155,27 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma
|
||||
return plugin
|
||||
}
|
||||
|
||||
fun addPluginDependency(plugin: MavenDomPlugin, artifact: MavenId): MavenDomDependency? {
|
||||
ensureBuild()
|
||||
|
||||
val dependencies = plugin.dependencies
|
||||
|
||||
dependencies.dependencies.firstOrNull {
|
||||
it.groupId.stringValue == artifact.groupId &&
|
||||
it.artifactId.stringValue == artifact.artifactId
|
||||
}?.let { return it }
|
||||
|
||||
with(dependencies.addDependency()) {
|
||||
groupId.stringValue = artifact.groupId
|
||||
artifactId.stringValue = artifact.artifactId
|
||||
artifact.version?.let {
|
||||
version.stringValue = it
|
||||
}
|
||||
ensureTagExists()
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
fun findPlugin(groupArtifact: MavenId): MavenDomPlugin? = domModel.build.plugins.plugins.firstOrNull { it.matches(groupArtifact) }
|
||||
|
||||
fun isPluginAfter(plugin: MavenDomPlugin, referencePlugin: MavenDomPlugin): Boolean {
|
||||
@@ -650,14 +671,15 @@ fun PomFile.changeLanguageVersion(languageVersion: String?, apiVersion: String?)
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
fun PomFile.addKotlinCompilerPlugins(name: String) {
|
||||
val kotlinPlugin = findPlugin(kotlinPluginId(null)) ?: return
|
||||
fun PomFile.addKotlinCompilerPlugin(name: String): MavenDomPlugin? {
|
||||
val kotlinPlugin = findPlugin(kotlinPluginId(null)) ?: return null
|
||||
val configurationTag = kotlinPlugin.configuration.ensureTagExists()
|
||||
val compilerPluginsTag = configurationTag.findSubTagOrCreate("compilerPlugins")
|
||||
compilerPluginsTag.findSubTags("plugin").firstOrNull { it.value.trimmedText == name } ?: run {
|
||||
val pluginTag = compilerPluginsTag.createChildTag("plugin", name)
|
||||
compilerPluginsTag.add(pluginTag)
|
||||
}
|
||||
return kotlinPlugin
|
||||
}
|
||||
|
||||
internal fun MavenDomDependencies.findDependencies(artifact: MavenId, scope: MavenArtifactScope? = null) =
|
||||
|
||||
+14
-2
@@ -7,11 +7,14 @@ import com.intellij.platform.backend.observation.launchTracked
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.xml.XmlFile
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import org.jetbrains.idea.maven.model.MavenId
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.kotlin.idea.configuration.KotlinCompilerPluginProjectConfigurator
|
||||
import org.jetbrains.kotlin.idea.maven.KotlinMavenBundle
|
||||
import org.jetbrains.kotlin.idea.maven.PomFile
|
||||
import org.jetbrains.kotlin.idea.maven.addKotlinCompilerPlugins
|
||||
import org.jetbrains.kotlin.idea.maven.addKotlinCompilerPlugin
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator.Companion.GROUP_ID
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator.Companion.KOTLIN_VERSION_PROPERTY
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator.Companion.findModulePomFile
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator.Companion.kotlinPluginId
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
@@ -40,13 +43,19 @@ abstract class AbstractMavenKotlinCompilerPluginProjectConfigurator(private val
|
||||
coroutineScope.launchTracked {
|
||||
edtWriteAction {
|
||||
project.executeWriteCommand(KotlinMavenBundle.message("command.name.configure.0", xmlFile.name), null) {
|
||||
pom.addKotlinCompilerPlugins(kotlinPluginName)
|
||||
pom.addKotlinCompilerPlugin(kotlinPluginName)?.let { kotlinPlugin ->
|
||||
pluginDependencyMavenId?.let {
|
||||
pom.addPluginDependency(kotlinPlugin, it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return xmlFile
|
||||
}
|
||||
|
||||
protected abstract val pluginDependencyMavenId: MavenId?
|
||||
|
||||
protected abstract val kotlinPluginName: String
|
||||
}
|
||||
|
||||
@@ -54,6 +63,9 @@ class SpringMavenKotlinCompilerPluginProjectConfigurator(coroutineScope: Corouti
|
||||
override val kotlinPluginName: String
|
||||
get() = "spring"
|
||||
|
||||
override val pluginDependencyMavenId: MavenId
|
||||
get() = MavenId(GROUP_ID, "kotlin-maven-allopen", $$"${$$KOTLIN_VERSION_PROPERTY}")
|
||||
|
||||
override val compilerId: String = "kotlin-spring"
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user