最近我正在使用JDK 1.6.0_26的Maven 3.x,Eclipse Juno JavaEE IDE。在我的項目中,我在課堂內外都使用了enum。當我運行乾淨構建它會出現錯誤如何在Maven中編譯Java Enum?
[ERROR] found : my.package.MyClass.MyEnum
[ERROR] required: my.package.MyClass.MyEnum
然後我保證my/package/MyClass.java
首先需要編譯,所以我說
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<excludes>
<exclude>**/*.*</exclude>
</excludes>
<includes>
<include>**/MyClass.java</include>
</includes>
</configuration>
</execution>
<execution>
<id>second</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/MyClass.java</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
之後,它不希望正常工作。這對我來說非常煩人。如果我必須在應用程序中使用枚舉,我將如何克服它。有人試圖在他們的博客中證明它是java 1.6.0_26的錯誤,並在JDK 7中修復。如果是這樣,則無法遷移到JDK 7.x.用Eclipse JNO Java EE用Maven 3.x解決這個問題的任何方法。
package com.formativesoft.mcserp.validator;
public class Validator {
public enum Lang {
EN, BN;
}
}
爲什麼要排除編譯中的所有內容?並只編譯枚舉類? – WeMakeSoftware
由於enum類不是首先編譯的,所以我只想編譯枚舉類。枚舉類編譯後,我試圖編譯依賴於枚舉類的其餘類。 –
可能會混淆交叉依賴或maven緩存。嘗試清理〜/ .m2目錄並運行一個maven構建。另外,你是從命令行還是從eclipse運行maven?在有問題的情況下,最好從命令行運行maven。 –