You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@codehaus.org> on 2011/08/28 00:19:33 UTC

[jira] Issue Comment Edited: (MCOMPILER-129) unable to pass in javac -J option

    [ https://jira.codehaus.org/browse/MCOMPILER-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=277234#comment-277234 ] 

Robert Scholte edited comment on MCOMPILER-129 at 8/27/11 5:19 PM:
-------------------------------------------------------------------

One way to solve this is by using {{compilerArguments}} like this:
{code:xml}
<compilerArguments>
  <J-Duser.language>en_us</J-Duser.language>
</compilerArguments>
{code}

This works because the plugin will prefix the key with a '{{-}}' if it's not there.

There real problem is caused by this piece of code:
{code}
if ( !StringUtils.isEmpty( effectiveCompilerArgument ) )
{
  cplrArgsCopy.put( effectiveCompilerArgument, null );
}
{code}
Here the whole line is set as the key without a specific value. 
To solve this the line should be split into key-value pairs.
I´ve assigned this already issue to myself.


      was (Author: rfscholte):
    One way to solve this is by using {{compilerArguments}} like this:
{code:xml}
  <compiletArguments>
    <J-Duser.language>en_us</J-Duser.language>
  </compiletArguments>
{code}

This works because the plugin will prefix the key with a '{{-}}' if it's not there.

There real problem is caused by this piece of code:
{code}
if ( !StringUtils.isEmpty( effectiveCompilerArgument ) )
{
  cplrArgsCopy.put( effectiveCompilerArgument, null );
}
{code}
Here the whole line is set as the key without a specific value. 
To solve this the line should be split into key-value pairs.
I´ve assigned this already issue to myself.



  
> unable to pass in javac -J option
> ---------------------------------
>
>                 Key: MCOMPILER-129
>                 URL: https://jira.codehaus.org/browse/MCOMPILER-129
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3.1
>         Environment: jdk 1.6
> maven 3.0-beta-1
>            Reporter: Juven Xu
>            Assignee: Robert Scholte
>
> because of MCOMPILER-109, l10n-ed javac warning messages will be regarded as error, so I want to pass user language configuration to javac, like this:
> javac ... -J-Duser.language=en_us
> this works well on pure javac command line, but when I configure this for maven-compiler-plugin:
> <plugin>
>   <artifactId>maven-compiler-plugin</artifactId>
>   <version>2.3.1</version>
>   <configuration>
>     <fork>true</fork>
>     <source>1.5</source>
>     <target>1.5</target>
>     <compilerArgument>-J-Duser.language=en_us</compilerArgument>
>   </configuration>
> </plugin>
> I got&#65306;
> [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile' with basic configurator -->
> [DEBUG]   (f) basedir = D:\workspace\test
> [DEBUG]   (f) buildDirectory = D:\workspace\test\target
> [DEBUG]   (f) classpathElements = [D:\workspace\test\target\classes]
> [DEBUG]   (f) compileSourceRoots = [D:\workspace\test\src\main\java]
> [DEBUG]   (f) compilerArgument = -J-Duser.language=en_us
> [DEBUG]   (f) compilerId = javac
> [DEBUG]   (f) debug = true
> [DEBUG]   (f) failOnError = true
> [DEBUG]   (f) fork = true
> [DEBUG]   (f) generatedSourcesDirectory = D:\workspace\test\target\generated-sources\annotations
> [DEBUG]   (f) optimize = false
> [DEBUG]   (f) outputDirectory = D:\workspace\test\target\classes
> [DEBUG]   (f) outputFileName = test-0.0.1-SNAPSHOT
> [DEBUG]   (f) projectArtifact = com.juvenxu:test:jar:0.0.1-SNAPSHOT
> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@11d2572
> [DEBUG]   (f) showDeprecation = false
> [DEBUG]   (f) showWarnings = false
> [DEBUG]   (f) source = 1.5
> [DEBUG]   (f) staleMillis = 0
> [DEBUG]   (f) target = 1.5
> [DEBUG]   (f) verbose = false
> [DEBUG] -- end configuration --
> [DEBUG] Using compiler 'javac'.
> [DEBUG] Source directories: [D:\workspace\test\src\main\java]
> [DEBUG] Classpath: [D:\workspace\test\target\classes]
> [DEBUG] Output directory: D:\workspace\test\target\classes
> [DEBUG] Classpath:
> [DEBUG]  D:\workspace\test\target\classes
> [DEBUG] Source roots:
> [DEBUG]  D:\workspace\test\src\main\java
> [DEBUG] Command line options:
> [DEBUG] -d D:\workspace\test\target\classes -classpath D:\workspace\test\target\classes; -sourcepath D:\workspace\test\src\main\java; D:\workspace\test\src\main\java\com\juvenxu\test\Test.java -g -nowarn -target 1.5 -source 1.5 -J-Duser.language=en_us
> [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
> [INFO] Compiling 1 source file to D:\workspace\test\target\classes
> [INFO] -------------------------------------------------------------
> [ERROR] COMPILATION ERROR : 
> [INFO] -------------------------------------------------------------
> [ERROR] Failure executing javac,  but could not parse the error:
> javac: &#26080;&#25928;&#30340;&#26631;&#24535;&#65306; -J-Duser.language=en_us
> &#29992;&#27861;: javac <options> <source files>
> -help &#29992;&#20110;&#21015;&#20986;&#21487;&#33021;&#30340;&#36873;&#39033;
> [INFO] 1error
> [INFO] -------------------------------------------------------------
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 1.451s
> [INFO] Finished at: Wed May 26 17:29:06 CST 2010
> [INFO] Final Memory: 2M/5M
> [INFO] ------------------------------------------------------------------------
> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default-compile) on project test: Compilation failure
> Failure executing javac,  but could not parse the error:
> javac: &#26080;&#25928;&#30340;&#26631;&#24535;&#65306; -J-Duser.language=en_us
> &#29992;&#27861;: javac <options> <source files>
> -help &#29992;&#20110;&#21015;&#20986;&#21487;&#33021;&#30340;&#36873;&#39033;
> -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default-compile) on project test: Compilation failure
> Failure executing javac,  but could not parse the error:
> javac: &#26080;&#25928;&#30340;&#26631;&#24535;&#65306; -J-Duser.language=en_us
> &#29992;&#27861;: javac <options> <source files>
> -help &#29992;&#20110;&#21015;&#20986;&#21487;&#33021;&#30340;&#36873;&#39033;
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:581)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:121)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
> Failure executing javac,  but could not parse the error:
> javac: &#26080;&#25928;&#30340;&#26631;&#24535;&#65306; -J-Duser.language=en_us
> &#29992;&#27861;: javac <options> <source files>
> -help &#29992;&#20110;&#21015;&#20986;&#21487;&#33021;&#30340;&#36873;&#39033;
> 	at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:656)
> 	at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577)
> 	... 14 more
> [ERROR] 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira