У меня была эта проблема несколько раз. Вам уже повезло, что компилятор даже сообщает об ошибке, потому что в моем случае этого не произошло, а Maven позже потерпел неудачу с некоторой непонятной ошибкой.
В конце концов я обнаружил, что компилятор не очень хорошо справляется с какой-либо сложной типизацией (что-то вроде <A extends MyObject<A1,A2>, A1 extends MyObject2<A2>, A2 extends MyObject3>
). Обновление JVM может решить вашу проблему, но, скорее всего, снова наткнется на то, как развивается ваш код. Кажется, что такие ошибки исчезли в JDK-7, но я не уверен.
В любом случае, одним из решений является использование альтернативного компилятора для вашего кода (например, tycho), вы можете сделать это следующим образом в вашем pom.xml (либо в build -> plugins, либо в build -> pluginManagement -> plugins ):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${compiler.source}</source>
<target>${compiler.target}</target>
<encoding>${source.encoding}</encoding>
<fork>false</fork>
<compilerId>jdt</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-jdt</artifactId>
<version>0.13.0</version>
</dependency>
</dependencies>
</plugin>
Если вы используете Eclipse и M2E 1.0 или выше, вы получите ошибку, но вы можете избавиться от нее, добавив следующий фрагмент в ваш pom.xml (в build -> pluginManagement -> plugins):
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<parameters>
<compilerId>jdt</compilerId>
</parameters>
</pluginExecutionFilter>
<action>
<configurator>
<id>org.eclipse.m2e.jdt.javaConfigurator</id>
</configurator>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
Довольно уродливо и о проблеме сообщили разработчикам m2e, но они не считают это приоритетом, поэтому вам придется с этим смириться