Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.3.1
-
Fix Version/s: 2.4
-
Labels:None
-
Environment:JDK 1.6, Maven 2.2.1, Maven-Compiler-Plugin 2.3.1, Windows
-
Number of attachments :
Description
I have an annotation processor that supports multiple parameters and I have found that there is no way to set more than one of them at any given time from the Maven Compiler Plugin,
Here's my setup.
<plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.1</version> <configuration> <source>1.6</source> <target>1.6</target> <compilerArgument>-AaddResDir=src/main/webapp -Averbose=true</compilerArgument> </configuration> </plugin>
Javac needs the parameters added as separate Strings
[ ... , "-AaddResDir=src/main/webapp", "-Averbose=true"]
but the Compiler Plugin generates this code:
[ ... , "-AaddResDir=src/main/webapp -Averbose=true"]
which Javac will parse as
key:"addResDir" value="src/main/webapp -Averbose=true"
The map version "<compilerArguments>" is of no help either, because this
<Averbose>true</Averbose>
<AaddResDir>src/main/webapp</AResDir>
will generate the output
[... , "-Averbose", "true", "-AaddResDir", "src/main/webapp"]
while this
<Averbose=true />
<AaddResDir=src/main/webapp />
is not well-formed XML.
Stepping through the compiler argument generation with the debugger I have not found a way to post-process the arguments, so please add a way to support multiple APT parameters because this is a major show-stopper.
Issue Links
- relates to
-
MCOMPILER-62
Allow multiple options to be passed to compiler for options not supported by the compiler mojo
-
Here is a Patch for org.apache.maven.plugin.AbstractCompilerMojo that enables the following code:
<compilerArguments> <AaddResDir>src/main/webapp</AaddResDir> <Averbose>true</Averbose> </compilerArguments>There should probably be a check whether source version is at least 1.6 and compiler id is javac, though.