如何在Maven中编译Java枚举?

如何在Maven中编译Java枚举?,java,maven,maven-3,maven-plugin,jdk1.6,Java,Maven,Maven 3,Maven Plugin,Jdk1.6,最近我正在使用maven 3.x、EclipseJuno JavaEE IDE和JDK1.6.026。在我的项目中,我在类的内部和外部都使用了enum。当我运行clean build时,它似乎是一个错误 [ERROR] found : my.package.MyClass.MyEnum [ERROR] required: my.package.MyClass.MyEnum 然后我确保my/package/MyClass.java需要首先编译,所以我添加了 org.apache.maven

最近我正在使用maven 3.x、EclipseJuno JavaEE IDE和JDK1.6.026。在我的项目中,我在类的内部和外部都使用了enum。当我运行clean build时,它似乎是一个错误

[ERROR] found   : my.package.MyClass.MyEnum
[ERROR] required: my.package.MyClass.MyEnum
然后我确保
my/package/MyClass.java
需要首先编译,所以我添加了


org.apache.maven.plugins
maven编译器插件
2.3.2
1.6
1.6
默认编译
编译
**/*.*
**/MyClass.java
第二
编译
**/*
**/MyClass.java
在那之后,它就没有希望了。这对我来说很烦人。如果我必须在我的应用程序中使用enum,我将如何克服它。有人试图在他们的博客中证明这是java 1.6.026的错误,并在JDK 7中修复。如果是这样,就不可能迁移到JDK 7.x。用maven 3.x和EclipseJNOJavaEE解决这个问题的任何方法

package com.formativesoft.mcserp.validator;

public class Validator {

    public enum Lang {
        EN, BN;
    }
}

您不需要编译执行技巧。如果枚举在定义它的同一工件中使用,则无需执行任何特殊操作。我猜这只是暂时的小故障。从pom的配置中删除目标定义排除疯狂,从控制台在项目上运行mvn clean install,几乎可以肯定您不会有问题。如果需要,请包含错误消息,以便我们可以进一步帮助您。

为什么要从编译中排除所有内容?并且只编译枚举类?因为枚举类没有首先编译,所以我尝试只编译枚举类。编译完enum类后,我试图编译依赖于enum类的类的其余部分。可能是交叉依赖项或maven缓存弄乱了。尝试清理~/.m2目录并运行maven构建。另外,您是从命令行还是从eclipse运行maven?在有问题的情况下,最好从命令行运行maven。@ShahedHossain断章取义,但为什么要编写Eclipse Juno作为>>Eclipse JNO?您使用的是一个古老且不安全的Java 6版本。升级到6u43
[INFO]-------------------------------------------------------------[ERROR]编译错误:[INFO]-------------------------------------------------------------[ERROR]D:\Workspaces\MCSWorksapces\SpringWorkspace\mcserp\spring validator\src\main\java\com\formativesoft\mcserp\validator\昵称.java:[20,25]发现不兼容的类型:com.formativesoft.mcserp.validator.validator.Lang所需:com.formativesoft.mcserp.validator.validator.Lang
实际上正如您所提到的那样尝试了它,但无法获得有成效的结果,然后添加了
执行
节点。首先,假设这可能是eclipse的问题,然后我直接从maven控制台进行了尝试,并仍在尝试。上面由meCan编写的错误消息您是否发布了mcserp.validator.validator.Lang的代码?它是如何定义的?在eclipse中代码看起来是可编译的吗?是否可以将枚举定义为其他类的子类?然后你还需要传入父类的一个实例,或者看看这个so问题:我刚刚编辑了我的文章,在文章的结尾你会找到枚举定义。正如我所说的,如果你的枚举被定义为另一个类的子类,你可能会遇到问题。将枚举定义为一个单独的类,它应该没有问题。