2015-12-09 4 views
8

Ich habe ein Projekt nur für das Plugin "org.jvnet.jaxb2.maven2:maven-jaxb2-plugin". Es funktioniert, aber ich mag nicht die Fehlermeldung im Eclipse-Editor für die" pom.xml "die Botschaft lautet:ErrorListener fehlt bei der Verwendung von Maven-Jaxb-Plugin mit Eclipse und m2e

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 

die pom und damit das gesamte Projekt iSt fehlerhaft sein 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> 

My" mvn validate "Befehl gibt keinen Fehler an und der beanstandete ErrorListener wird mit dem Artefakt" com.sun.xml.bind:jaxb-core "bereitgestellt. Und wie bereits gesagt, wenn das Projekt ausgeführt wird, um Quellen zu generieren, funktioniert es gut. Hat jemand dieses Plugin laufen und kann seine pom.xml teilen?

+0

Ich bin jetzt total verloren. Ich habe versucht mit dieser pom.xml: – Ulrich

+0

Ich bin jetzt total verloren. Ich habe versucht, mit dieser pom.xml: 1. Import in eine neue Eclipse (Mars) Arbeitsbereich 2. Erstellen Sie von Grund auf in einem neuen Eclipse (Mars) Arbeitsbereich 3. Erstellen Sie von Grund auf in einem neuen Eclipse (Kepler) Workspace mit a neues initiales lokales Repository für alle drei Samples fehlgeschlagen mit "generate-sources" aus Eclipse UI, aber Zeilenbefehl "mvn generate-sources" funktioniert gut. – Ulrich

+0

Bereitgestellt in 'org.glassfish.jaxb: jaxb-core'. – lexicore

Antwort

7

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

[Update] Ein anderer Mitarbeiter nur in diesen lief und er schien es der entscheidende Faktor war, die Java verwendet wurde Eclipse zu laufen. Es wird nicht verwendet, was JAVA_HOME auch konfiguriert ist, sondern die erste verfügbare Java-Laufzeitumgebung. Er entfernte alle jres aus seinem System und hinterließ nur einen jdk und das löste das Problem. Ich glaube, der kritische Faktor ist, ob die Eclipse mit einem JRE oder einem JDK läuft. Als ich das Problem löste, entfernte ich einen JRE von meinem System und das war wahrscheinlich, was Eclipse verwendet hatte. Mit dieser JRE fehlte es an JDK, obwohl ich andere jres zur Verfügung hatte. Wenn Sie jes nicht von Ihrem System entfernen möchten, können Sie angeben, welche Java-Laufzeit-Eclipse verwendet werden soll (How to run eclipse with different java version?). Wenn nichts angegeben ist, bestimmt eclipse die zu verwendende Java-Laufzeit (Find out what JVM Eclipse is running on).

+0

Für jaxb2-maven-plugin 2.3.1 und STS 3.9.0.RELEASE Build Id: 201707061823 Plattform: Eclipse Oxygen (4.7.0) funktioniert auch. Aber ich brauchte Run Maven direkt von der Konsole. Ich denke, ist ein Eclipse oder Eclipse Pluging-Problem. – Sergio

3

Dieses Problem wurde durch eine Eclipse verursacht, die auf einer JRE statt auf einer JDK ausgeführt wird.

Bearbeiten Sie Ihre eclipse.ini und zeigen auf einem geeigneten JDK - zum Beispiel

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

können Sie versuchen,

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

Das gleiche Problem hier lösen, wenn ich die Version verringern.

Von:

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

An:

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

EDIT:

ich alles andere versucht:

-Deleting alle JRE von Eclipse-

-S Eclipse JDK tarting

EDIT2:

Ihre .m2 Ordner überprüfen. Finden Sie das problematische Glas und überprüfen Sie seine Größe.In einigen Situationen könnte Maven die Abhängigkeit nicht richtig herunterladen können und die .jar kann existieren, aber 0kb Größe haben. WENN SO: Löschen Sie die .jar und lassen Maven es erneut herunterladen.

+0

Dies stoppt den Fehler, aber es erstellt nicht die hello.wsdl. – Jesse

0

Update-Plugin auf Version 0.13.3 behebt dieses Problem.

Verwandte Themen