[
http://jira.codehaus.org/browse/MCOMPILER-123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=218702#action_218702
]
Nick Radov commented on MCOMPILER-123:
--------------------------------------
It appears I am also being affected by this defect. I am trying to pass this
compiler argument.
<compilerArgument>-warn:boxing,charConcat,conditionAssign,constructorName,dep-ann,deprecation,incomplete-switch,finally,indirectStatic,intfAnnotation,intfNonInherited,javadoc,maskedCatchBlocks,noEffectAssign,null,over-ann,pkgDefaultMethod,semicolon,static-access,suppress,unchecked,unused,uselessTypeCheck,varargsCast
-g -enableJavadoc -showversion</compilerArgument>
But when the compiler runs none of those arguments seem to be in effect.
> No way to set compiler arguments/options for Eclipse compiler
> -------------------------------------------------------------
>
> Key: MCOMPILER-123
> URL: http://jira.codehaus.org/browse/MCOMPILER-123
> Project: Maven 2.x Compiler Plugin
> Issue Type: Bug
> Affects Versions: 2.2
> Reporter: Lóránt Pintér
>
> I have a problem with setting compiler options for the Eclipse compiler. I
> tried to do the following:
> {code:xml}
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>2.2</version>
> <configuration>
> <compilerId>eclipse</compilerId>
> <source>1.6</source>
> <target>1.6</target>
> <encoding>utf-8</encoding>
> <compilerArguments>
>
> <org.eclipse.jdt.core.compiler.problem.missingSerialVersion>ignore</org.eclipse.jdt.core.compiler.problem.missingSerialVersion>
> </compilerArguments>
> </configuration>
> <dependencies>
> <dependency>
> <groupId>org.codehaus.plexus</groupId>
> <artifactId>plexus-compiler-eclipse</artifactId>
> <version>1.8</version>
> </dependency>
> </dependencies>
> </plugin>
> {code}
> It should be okay, as this is in EclipseJavaCompiler:
> {code:java}
> // compiler-specific extra options override anything else in the config
> object...
> Map extras = config.getCustomCompilerArguments();
> if ( extras != null && !extras.isEmpty() )
> {
> settings.putAll( extras );
> }
> // ...
> // ----------------------------------------------------------------------
> // Compile!
> // ----------------------------------------------------------------------
> CompilerOptions options = new CompilerOptions( settings );
> Compiler compiler = new Compiler( env, policy, options, requestor,
> problemFactory );
> {code}
> But the problem is that all keys in the map are prefixed with "-" in
> AbstractCompilerMojo:
> {code:java}
> Map<String, String> effectiveCompilerArguments = getCompilerArguments();
> String effectiveCompilerArgument = getCompilerArgument();
> if ( ( effectiveCompilerArguments != null ) || ( effectiveCompilerArgument !=
> null ) )
> {
> LinkedHashMap<String, String> cplrArgsCopy = new LinkedHashMap<String,
> String>();
> if ( effectiveCompilerArguments != null )
> {
> for ( Map.Entry<String, String> me :
> effectiveCompilerArguments.entrySet() )
> {
> String key = (String) me.getKey();
> String value = (String) me.getValue();
> if ( !key.startsWith( "-" ) )
> {
> key = "-" + key;
> }
> cplrArgsCopy.put( key, value );
> }
> }
> if ( !StringUtils.isEmpty( effectiveCompilerArgument ) )
> {
> cplrArgsCopy.put( effectiveCompilerArgument, null );
> }
> compilerConfiguration.setCustomCompilerArguments( cplrArgsCopy );
> }
> {code}
> So what actually gets into the Map for CompilerOptions is this:
> {code}
> -org.eclipse.jdt.core.compiler.problem.missingSerialVersion = ignore
> {code}
> Instead of:
> {code}
> org.eclipse.jdt.core.compiler.problem.missingSerialVersion = ignore
> {code}
> The incorrect setting name is then silently discarded by ECJ.
> I cannot use this either:
> {code:xml}
> <configuration>
> <compilerId>eclipse</compilerId>
> <source>1.6</source>
> <target>1.6</target>
> <encoding>utf-8</encoding>
> <compilerArgument>-warn:-serial</compilerArgument>
> </configuration>
> {code}
> ...because "-warn:-serial" is not passed as a command-line argument, but it
> is also added to the Map for CompilerOptions:
> {code:java}
> if ( !StringUtils.isEmpty( effectiveCompilerArgument ) )
> {
> cplrArgsCopy.put( effectiveCompilerArgument, null );
> }
> compilerConfiguration.setCustomCompilerArguments( cplrArgsCopy );
> {code}
--
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