web-dev-qa-db-de.com

ErrorListener fehlt bei Verwendung von Maven-Jaxb-Plugin mit Eclipse und m2e

Ich habe ein Projekt nur für das Plugin "org.jvnet.jaxb2.maven2:maven-jaxb2-plugin"" eingerichtet. Es funktioniert, aber mir gefällt die Fehlermeldung nicht, die im Eclipse-Editor für "pom.xml" angezeigt wird. 

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

Der Pom und damit das gesamte Projekt ist als fehlerhaft markiert.

Hier ist meine 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>

Mein "mvn validate" -Befehl enthält keinen Fehler und der beanspruchte ErrorListener wird mit dem Artefakt "com.Sun.xml.bind:jaxb-core" versehen. Wie bereits gesagt, funktioniert das Projekt zur Erzeugung von Quellen einwandfrei. Hat jemand dieses Plugin und kann seine pom.xml teilen?

12
Ulrich

Update des Plugins auf Version 0.13.3 behebt dieses Problem.

11
Mahmoud Saleh

Ich habe dieses Problem behoben, indem ich JREs aus meinen Eclipse-Voreinstellungen (Java> Installierte JREs) entfernte und nur das ausgewählte JDK dort beließ. Obwohl die JREs nicht ausgewählt wurden, verursachen sie immer noch das Problem und müssen entfernt werden. Ich konnte die JREs auf meinem System belassen ... Dieser Beitrag war hilfreich: http://diggingthroughcode.blogspot.ca/2016/05/trouble-with-maven-jaxb2-plugin-and.html

[Update] Ein anderer Kollege traf gerade darauf und für ihn schien es entscheidend zu sein, mit welchem ​​Java Eclipse ausgeführt wurde. Es wird nicht verwendet, was auch Java_HOME konfiguriert ist, sondern die erste verfügbare Java-Laufzeitumgebung. Er entfernte alle Jres von seinem System und hinterließ nur eine Jdk und das Problem wurde gelöst. Ich glaube, der entscheidende Faktor ist, ob Eclipse mit einem Jre oder einem Jdk läuft. Als ich das Problem gelöst hatte, entfernte ich eine Version von meinem System und dies war wahrscheinlich das, was Eclipse verwendet hatte. Mit diesem fehlenden jre wurde zu einem jdk gewechselt, obwohl mir andere jres zur Verfügung standen. Wenn Sie jres nicht von Ihrem System entfernen möchten, können Sie angeben, welche Java-Laufzeitumgebung Eclipse verwenden soll ( Wie wird Eclipse mit einer anderen Java-Version ausgeführt? ). Wenn nichts angegeben ist, bestimmt Eclipse die zu verwendende Java-Laufzeitumgebung ( Finden Sie heraus, welche JVM Eclipse auf ausgeführt wird).

8
Darren Reimer

Dieses Problem wurde dadurch verursacht, dass Eclipse anstelle von JDK auf einer JRE ausgeführt wurde.

Bearbeiten Sie Ihre Eclipse.ini und zeigen Sie auf ein geeignetes JDK - zum Beispiel

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

Dasselbe Problem hier lösen, wenn ich die Version verkleinere.

Von :

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

Zu: 

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

BEARBEITEN:

Ich habe alles andere probiert:

-Löschen aller JRE von Eclipse

-Start Eclipse mit JDK

EDIT2:

Überprüfen Sie Ihren .m2-Ordner. Finden Sie das problematische Glas und überprüfen Sie seine Größe. In einigen Situationen konnte Maven die Abhängigkeit nicht ordnungsgemäß heruntergeladen haben, und der .jar kann existieren, hat jedoch 0kb Größe. WENN SO: Löschen Sie den .jar und lassen Sie Maven es erneut herunterladen.

2
Lazar Lazarov

Du kannst es versuchen 

<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>
1
Vivek Padigela

Ich hatte das gleiche Problem, ich weiß, es könnte ein bisschen dumm sein, aber überprüfen Sie, ob alle Ressourcen (wsdl und xsd) in der von Ihnen angegebenen URL in der pom.xml vorhanden sind 

Ich hatte ein ähnliches Problem:

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

In meinem Fall war dies auf die Verwendung von Java 10 in einem Java 8-Projekt zurückzuführen. Durch das Umschalten auf die richtige Java-Version wurde das Problem behoben.

0
Torbjørn M