[ 
http://jira.codehaus.org/browse/MCOMPILER-135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=235198#action_235198
 ] 

Sean Patrick Floyd commented on MCOMPILER-135:
----------------------------------------------

Per: have a look at {code}javac -help{code}

{noformat}
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are 
used
  -classpath <path>          Specify where to find user class files and 
annotation processors
  -cp <path>                 Specify where to find user class files and 
annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or 
compilation is done.
  -processor <class1>[,<class2>,<class3>...]Names of the annotation processors 
to run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -implicit:{none,class}     Specify whether or not to generate class files for 
implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system
{noformat} 

You can see that almost all parameters are either of the form "-parameter" or 
"-parameter value" (your example "-verbose=true" throws an error, the usage is 
"-verbose"). There are only a few exceptions to this rule, and -Akey=value is 
one of them. Some of the other exceptions are already handled (like 
[proc:|http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#proc]).

> Passing multiple parameters to Java 6 annotation processors with javac does 
> not work
> ------------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-135
>                 URL: http://jira.codehaus.org/browse/MCOMPILER-135
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3.1
>         Environment: JDK 1.6, Maven 2.2.1, Maven-Compiler-Plugin 2.3.1, 
> Windows
>            Reporter: Sean Patrick Floyd
>         Attachments: AbstractCompilerMojo.java.2.patch, 
> AbstractCompilerMojo.java.patch
>
>
> 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.
> {code:xml} 
> <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>
> {code} 
> Javac needs the parameters added as separate Strings
> {code}[ ... , "-AaddResDir=src/main/webapp", "-Averbose=true"]{code}
> but the Compiler Plugin generates this code:
> {code}[ ... , "-AaddResDir=src/main/webapp -Averbose=true"]{code}
> which Javac will parse as
> {code}key:"addResDir" value="src/main/webapp -Averbose=true"{code}
> The map version "<compilerArguments>" is of no help either, because this
> {code}<Averbose>true</Averbose>
> <AaddResDir>src/main/webapp</AResDir>{code}
> will generate the output
> {code}[... , "-Averbose", "true", "-AaddResDir", "src/main/webapp"]{code}
> while this
> {code}<Averbose=true />
> <AaddResDir=src/main/webapp />{code}
> 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.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to