views:

38

answers:

1

I have a project where I am responsible for fixing some errors and another developer is responsible for other errors. The number of errors is well over a hundred, and as I'm fixing my errors, her errors are piling up. I'm at the point where I see 99 of her errors and one of mine, and I assume I will soon get to a point where it is 100 of hers. I looked into using this configuration for maven:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <compilerArgument>-Xmaxerrs 1000</compilerArgument>
  </configuration>
</plugin>

But no dice:

Failure executing javac,  but could not parse the error:
javac: invalid flag: -Xmaxerrs 1000
Usage: javac <options> <source files>
use -help for a list of possible options

On the command line using javac, the maxerrs flag works as expected, but I can't seem to make the leap to maven with it.

Any ideas?

+2  A: 

Using the "Map syntax" worked for me:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.1</version>
    <configuration>
      <fork>true</fork>
      <compilerArguments>
        <Xmaxerrs>1000</Xmaxerrs>
      </compilerArguments>
    </configuration>
  </plugin>

The option is passed as expected:

$ mvn clean compile -X
...
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [/home/pascal/Projects/stackoverflow/Q3358242/src/main/java]
[DEBUG] Classpath: [/home/pascal/Projects/stackoverflow/Q3358242/target/classes]
[DEBUG] Output directory: /home/pascal/Projects/stackoverflow/Q3358242/target/classes
[DEBUG] Classpath:
[DEBUG]  /home/pascal/Projects/stackoverflow/Q3358242/target/classes
[DEBUG] Source roots:
[DEBUG]  /home/pascal/Projects/stackoverflow/Q3358242/src/main/java
[DEBUG] Command line options:
[DEBUG] -d /home/pascal/Projects/stackoverflow/Q3358242/target/classes -classpath /home/pascal/Projects/stackoverflow/Q3358242/target/classes: -sourcepath /home/pascal/Projects/stackoverflow/Q3358242/src/main/java: /home/pascal/Projects/stackoverflow/Q3358242/src/main/java/com/stackoverflow/q3358242/App.java -g -nowarn -target 1.5 -source 1.5 -encoding UTF-8 -Xmaxerrs 1000
[INFO] Compiling 1 source file to /home/pascal/Projects/stackoverflow/Q3358242/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
...

The odd part is that I get the exact same debug output (with the exact same Command line options) when using the alternative configuration you provided... except that it fails due to a Failure executing javac. You should raise a Jira issue, there is definitely something weird.

Pascal Thivent
@Pascal - is the *"alternative configuration"* you refer to the one in my answer?
Stephen C
@Stephen No, I'm referring to the configuration posted by the OP, which is IMO correct (I mean conform to the documentation).
Pascal Thivent
@Stephen Just tested your suggestion (the one of your answer), only the last `compilerArgument` get passed (1000 here). I guess you're not supposed to pass several `compilerArgument`.
Pascal Thivent
Yes, worked for me too. Thanks!
Mike
http://jira.codehaus.org/browse/MCOMPILER-130
Mike
@Mike Thanks for the feedback (and the issue).
Pascal Thivent