Skip to content

Commit

Permalink
chore: maven compiler plugin compiler args
Browse files Browse the repository at this point in the history
- fixed compilerArgs param
- support --enable-preview
  • Loading branch information
gmyasoedov committed Apr 12, 2024
1 parent d8b09ee commit fa2cfd9
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,12 @@ fun collectCompilerArgs(mavenProject: MavenProject, pluginConfiguration: Element

val compilerArgs = pluginConfiguration.getChild("compilerArgs")
if (compilerArgs != null) {
for (arg in compilerArgs.getChildren("arg")) {
ContainerUtil.addIfNotNull(options, getResolvedText(arg))
}
for (compilerArg in compilerArgs.getChildren("compilerArg")) {
ContainerUtil.addIfNotNull(options, getResolvedText(compilerArg))
if (compilerArgs.children.isEmpty()) {
ContainerUtil.addIfNotNull(options, getResolvedText(compilerArgs.value))
} else {
for (arg in compilerArgs.children) {
ContainerUtil.addIfNotNull(options, getResolvedText(arg))
}
}
}
return options;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

package ru.rzn.gmyasoedov.gmaven.project

import com.intellij.execution.configurations.JavaParameters
import com.intellij.externalSystem.JavaModuleData
import com.intellij.openapi.externalSystem.model.DataNode
import com.intellij.openapi.externalSystem.model.ProjectKeys
Expand Down Expand Up @@ -65,7 +66,7 @@ fun createModuleData(
val contentRoot = ContentRoots(rootPaths, generatedPaths, project.buildDirectory)

val compilerData = pluginsData.compilerData
val sourceLanguageLevel: LanguageLevel = compilerData.sourceLevel
val sourceLanguageLevel: LanguageLevel = getSourceLevel(compilerData.sourceLevel, compilerData)
val targetBytecodeLevel: LanguageLevel = compilerData.targetLevel
moduleDataNode.createChild(ModuleSdkData.KEY, ModuleSdkData(null))

Expand Down Expand Up @@ -182,7 +183,8 @@ private fun createSourceSetModule(
val sourceLevel = if (isTest) compilerData.testSourceLevel else compilerData.sourceLevel
val targetLevel = (if (isTest) compilerData.testTargetLevel else compilerData.targetLevel)
.toJavaVersion().toFeatureString()
moduleNode.createChild(JavaModuleData.KEY, JavaModuleData(SYSTEM_ID, sourceLevel, targetLevel))
val level = getSourceLevel(sourceLevel, compilerData)
moduleNode.createChild(JavaModuleData.KEY, JavaModuleData(SYSTEM_ID, level, targetLevel))
moduleNode.createChild(ModuleSdkData.KEY, ModuleSdkData(null))
return moduleNode
}
Expand Down Expand Up @@ -313,6 +315,11 @@ private fun getGeneratedContentRoot(
return MavenGeneratedContentRoot(type, rootPath, paths)
}

private fun getSourceLevel(level: LanguageLevel, compilerData: CompilerData): LanguageLevel {
return if (compilerData.arguments.contains(JavaParameters.JAVA_ENABLE_PREVIEW_PROPERTY))
level.previewLevel ?: level else level
}

private class ContentRoots(
val paths: List<MavenContentRoot>,
val generatedPaths: List<MavenGeneratedContentRoot>,
Expand Down

0 comments on commit fa2cfd9

Please sign in to comment.