programing

eclipse 및 m2e와 함께 maven-jaxb-plugin을 사용할 때 ErrorListener가 누락됨

oldcodes 2023. 7. 13. 21:05
반응형

eclipse 및 m2e와 함께 maven-jaxb-plugin을 사용할 때 ErrorListener가 누락됨

플러그인 전용 프로젝트를 설정했습니다. "org.jvnet.jaxb2.maven2:maven-jaxb2-plugin"작동하지만 "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.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>

나의 "mvn validate명령에 오류가 표시되지 않으며, 클레임된 ErrorListener에 아티팩트 "가 제공됩니다.com.sun.xml.bind:jaxb-core그리고 이미 말했듯이, 소스를 생성하기 위해 프로젝트를 실행할 때 잘 작동합니다.이 플러그인을 실행하고 그의 pom.xml을 공유할 수 있는 사람이 있습니까?

플러그인을 버전 0.13.3으로 업데이트하면 이 문제가 해결됩니다.

이클립스 환경설정(Java > Installed JREs)에서 JRE를 제거하고 선택한 JDK만 남겨서 이 문제를 해결했습니다.JRE가 선택되지 않았지만 문제가 발생하여 JRE를 제거해야 합니다.저는 JRE들을 제 시스템에 남겨둘 수 있었습니다.이 게시물은 도움이 되었습니다: http://diggingthroughcode.blogspot.ca/2016/05/trouble-with-maven-jaxb2-plugin-and.html

[Update] 다른 동료가 방금 이 문제에 부딪혔는데, 그에게는 어떤 Java를 사용하여 Eclipse를 실행하고 있는지가 중요한 요인인 것 같았습니다.구성된 Java_HOME도 사용하지 않지만 사용 가능한 첫 번째 Java 런타임을 사용합니다.그는 그의 시스템에서 모든 jres를 제거하고 jdk만 남겼으며 그로 인해 문제가 해결되었습니다.저는 이클립스가 jre와 jdk 중 어느 것으로 실행되고 있는지가 중요한 요소라고 생각합니다.문제를 해결할 때 시스템에서 jre 하나를 제거했는데 이것이 이클립스가 사용했던 것 같습니다.이 jre가 없어져서 다른 jre를 사용할 수 있는데도 jdk로 전환했습니다.시스템에서 jres를 제거하지 않으려면 사용할 Java 런타임 이클립스를 지정할 수 있습니다(다른 Java 버전으로 이클립스를 실행하는 방법?).이클립스가 지정되지 않은 경우 사용할 Java 런타임이 결정됩니다(JVM 이클립스가 실행 중인 대상 확인).

이 문제는 JDK 대신 JRE에서 실행되는 일식으로 인해 발생했습니다.

일식을 편집합니다.ini 및 적절한 JDK를 가리킵니다. 예를 들어).

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

여기서도 같은 문제입니다. 버전을 줄이면 해결됩니다.

시작:

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

받는 사람:

            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.8.1</version>

편집:

다른 모든 것을 시도했습니다.

-Eclipse에서 모든 JRE 삭제

-JDK로 Eclipse 시작하기

EDIT2:

를 확인해 ..m2폴더를 누릅니다.문제가 있는 병을 찾아 크기를 확인합니다.일부 상황에서는 메이븐이 종속성을 제대로 다운로드하지 못했을 수 있습니다..jar존재할 수 있지만 가질 수 있는0kbsize. 합니다. IFSO: 삭제.jar메이븐이 다시 다운로드하게 해주세요.

시도해 보세요

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

저도 비슷한 문제가 있었습니다.

Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.3:generate failed: Prefix '' is already bound to ''

나의 경우, 이것은 Java 8 프로젝트에서 Java 10을 사용했기 때문입니다.올바른 Java 버전으로 전환하면 문제가 해결됩니다.

저도 같은 문제가 있었습니다. 다소 바보 같은 일일 수 있다는 것을 알지만 모든 리소스(wsdl 및 xsd)가 pom.xml에서 제공하는 URL에서 사용 가능한지 확인해 보십시오.

언급URL : https://stackoverflow.com/questions/34173363/errorlistener-missing-when-using-maven-jaxb-plugin-with-eclipse-and-m2e

반응형