[maven] do not deduplicate compiler arguments IDEA-371005

reviewId: IJ-CR-160724

ch2erry-picked from 5ab1336af7f55597eba517288439832e0735ddff

GitOrigin-RevId: f1beb7e0206422b7329f7b46c5d179a3f3d50e39
This commit is contained in:
Nikita.Skvortsov
2025-04-17 15:01:10 +02:00
committed by intellij-monorepo-bot
parent 152732e901
commit 46b55e0720
2 changed files with 31 additions and 1 deletions

View File

@@ -254,7 +254,7 @@ class MavenCompilerConfigurator : MavenApplicableConfigurator(GROUP_ID, ARTIFACT
}
private fun collectCompilerArgs(configData: MavenCompilerConfigurationRawData): List<String> {
val result = LinkedHashSet<String>()
val result = mutableListOf<String>()
configData.propertyCompilerParameters?.let {
if (it.toBoolean()) {
result.add("-parameters")

View File

@@ -6,6 +6,7 @@ import com.intellij.compiler.CompilerConfigurationImpl
import com.intellij.compiler.impl.javaCompiler.BackendCompiler
import com.intellij.compiler.impl.javaCompiler.eclipse.EclipseCompiler
import com.intellij.compiler.impl.javaCompiler.javac.JavacConfiguration
import com.intellij.idea.TestFor
import com.intellij.maven.testFramework.MavenMultiVersionImportingTestCase
import com.intellij.openapi.module.LanguageLevelUtil
import com.intellij.pom.java.AcceptedLanguageLevelsSettings
@@ -1131,4 +1132,33 @@ class MavenCompilerImportingTest : MavenMultiVersionImportingTestCase() {
}
@Test
@TestFor(issues = ["IDEA-371005"])
fun repetitiveCompilerArguments() = runBlocking {
importProjectAsync("""
<groupId>test</groupId>
<artifactId>project</artifactId>
<version>1</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.12.1</version>
<configuration>
<compilerArgs>
<arg>--add-exports</arg>
<arg>java.base/sun.reflect.annotation=ALL-UNNAMED</arg>
<arg>--add-exports</arg>
<arg>java.base/sun.nio.ch=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build> """.trimIndent())
assertModules("project")
assertOrderedElementsAreEqual(ideCompilerConfiguration.getAdditionalOptions(getModule("project")),
"--add-exports", "java.base/sun.reflect.annotation=ALL-UNNAMED", "--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED")
}
}