Java 将maven jaxb插件与eclipse和m2e一起使用时缺少ErrorListener

Java 将maven jaxb插件与eclipse和m2e一起使用时缺少ErrorListener,java,eclipse,maven,spring-boot,jaxb,Java,Eclipse,Maven,Spring Boot,Jaxb,我已经为插件“org.jvnet.jaxb2.maven2:maven-jaxb2-plugin”设置了一个项目。它可以工作,但我不喜欢Eclipse编辑器中显示的“pom.xml”错误消息。电文指出: Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.1:generate failed: A required class was missing while executing org.jvnet.j

我已经为插件“
org.jvnet.jaxb2.maven2:maven-jaxb2-plugin”
设置了一个项目。它可以工作,但我不喜欢Eclipse编辑器中显示的“pom.xml”错误消息。电文指出:

Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.1:generate failed: A required class was missing while executing org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.1:generate: com/sun/xml/bind/api/ErrorListener
pom和整个项目都被认为是错误的

以下是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>de.gombers.lernen.jaxb</groupId>
    <artifactId>PlayWithJAXB</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <configuration>
                    <show>private</show>
                    <nohelp>true</nohelp>
                </configuration>
            </plugin>


            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.13.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <extension>true</extension>
                    <useDependenciesAsEpisodes>true</useDependenciesAsEpisodes>
                    <outputDirectory>target/generated-sources/jaxb</outputDirectory>
                    <packageName>de.gombers.lernen.jaxb.generated</packageName>
                    <schemaDirectory>src/main/resources</schemaDirectory>
                    <schemaFiles>Employee.xsd</schemaFiles>
                </configuration>
            </plugin>

        </plugins>


    </build>

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

        <!-- JAXB -->
        <dependency>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin-core</artifactId>
            <version>0.13.1</version>
        </dependency>
        <dependency>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb22-plugin</artifactId>
            <version>0.13.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-project</artifactId>
            <version>2.0.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-settings</artifactId>
            <version>2.0.9</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-container-default</artifactId>
            <version>1.0-alpha-9-stable-1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.2.7</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2.7</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2.7</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-jxc</artifactId>
            <version>2.2.7</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-xjc</artifactId>
            <version>2.2.7</version>
        </dependency>


        <!-- HELPERS -->
        <dependency>
            <groupId>de.gombers</groupId>
            <artifactId>BasicTools</artifactId>
            <version>1.0.0</version>
        </dependency>

        <!-- LOGGING -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.13</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.2</version>
        </dependency>

        <!-- JUNIT -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.8.4</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>

        <!-- JSON converter -->
        <dependency>
            <artifactId>jackson-core</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <artifactId>jackson-annotations</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <artifactId>jackson-databind</artifactId>
            <groupId>com.fasterxml.jackson.core</groupId>
            <version>2.3.3</version>
        </dependency>

    </dependencies>
</project>

4.0.0
de.gombers.lernen.jaxb
玩JAXB
0.0.1-快照
UTF-8
org.apache.maven.plugins
maven编译器插件
3.1
1.8
1.8
org.apache.maven.plugins
maven javadoc插件
2.9.1
私有的
真的
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.13.1
生成
真的
真的
目标/生成源/jaxb
de.gombers.lernen.jaxb.generated
src/main/resources
Employee.xsd
org.apache.commons
commons-lang3
3.4
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin-core
0.13.1
org.jvnet.jaxb2.maven2
maven-jaxb22-plugin
0.13.1
org.apache.maven
马文项目
2.0.9
org.apache.maven.plugin-tools
maven插件注释
3.4
org.apache.maven
maven设置
2.0.9
org.codehaus.plexus
丛容器默认值
1.0-α-9-稳定-1
朱尼特
朱尼特
4.8.1
com.sun.xml.bind
jaxb内核
2.2.7
javax.xml.bind
jaxb api
2.2.7
com.sun.xml.bind
jaxb impl
2.2.7
com.sun.xml.bind
jaxbjxc
2.2.7
com.sun.xml.bind
jaxbxjc
2.2.7
德冈贝尔斯
碱性醇
1.0.0
org.slf4j
slf4j api
1.7.13
回写
回归经典
1.1.2
朱尼特
朱尼特
4.12
org.mockito
莫基托所有
1.8.4
javax.servlet
servlet api
2.5
杰克逊核心
com.fasterxml.jackson.core
2.3.3
杰克逊注释
com.fasterxml.jackson.core
2.3.3
杰克逊数据绑定
com.fasterxml.jackson.core
2.3.3

我的“
mvn validate
”命令没有说明任何错误,并且声明的ErrorListener提供了工件“
com.sun.xml.bind:jaxb core
”。如前所述,当运行项目生成源代码时,它工作得很好。有人运行这个插件并可以共享他的pom.xml吗?

我通过从我的Eclipse首选项(Java>安装的JRE)中删除任何JRE并只保留所选的JDK解决了这个问题。即使未选择JRE,它们仍然会导致问题,必须删除。我可以将JRE留在我的系统上。 这篇文章很有帮助:

[更新]
另一位同事刚刚遇到了这个问题,对他来说,关键因素似乎是使用哪个Java来运行Eclipse。它不会使用配置的JAVA_HOME,而是第一个可用的JAVA运行时。他从系统中删除了所有JRE,只留下一个jdk,这就解决了问题。我认为关键因素是eclipse是使用jre还是jdk运行。当我解决这个问题时,我确实从我的系统中删除了一个jre,这很可能是eclipse一直在使用的。由于缺少这个jre,即使我有其他可用的jre,它也会切换到jdk。如果不想从系统中删除JRE,可以指定eclipse应该使用的java运行时()。如果未指定任何内容,eclipse将确定要使用的java运行时()。

此问题是由运行在JRE而不是JDK上的eclipse引起的

编辑eclipse.ini并指向合适的JDK,例如

-vm C:/Program Files (x86)/Java/jdk1.7.0_55/bin/javaw.exe
你可以试试

<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>

... 
... 
....

这里也有同样的问题-当我降低版本时解决了它

发件人:

            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.13.1</version>
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.13.1
致:

org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.8.1
编辑:

我尝试了其他一切:

-从Eclipse中删除所有JRE

-用JDK启动Eclipse

编辑2:


检查您的
.m2
文件夹。找到有问题的罐子并检查它的大小。在某些情况下,Maven可能无法正确下载依赖项,
.jar
可能存在,但大小为
0kb
。如果是这样:删除
.jar
,让Maven再次下载。

将插件更新为版本
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.8.1</version>