我有過這個問題多次。編譯器甚至會報告一個錯誤,因爲在我的情況下它並沒有這樣做,而且Maven以後失敗時會出現一些不可理解的錯誤。
最終,我發現編譯器沒有很好地處理一些複雜的輸入(類似<A extends MyObject<A1,A2>, A1 extends MyObject2<A2>, A2 extends MyObject3>
)。更新JVM可能會解決您的問題,但也可能隨着代碼的發展而再次出現問題。似乎這些錯誤在JDK-7中已經消失,但我無法確定。
無論如何,一個解決方案是使用備用的編譯器爲您的代碼(如第谷),你可以像下面這樣做在你的pom.xml(無論是在構建 - >插件或建立 - > pluginManagement - >插件):
<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(在建擺脫它 - > pluginManagement - >插件):
<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開發商而T3嘿不認爲這是一個優先事項,所以你必須忍受它
安裝的Java版本? – Viruzzo 2012-03-19 10:40:38
顯示您的JAVA_HOME – Ilya 2012-03-19 10:43:03
嘗試啓用啓用完全調試日誌記錄的Maven('mvn -e -X clean compile')。然後用你獲得的信息更新你的問題。 – sleske 2012-03-19 10:45:38