2014-04-29 35 views
5

podczas korzystania
jaxb2-maven-plugin z codehaus pojawia się następujący problem w znacznik zaćmienia treść tego markera zawiera następujące:org.codehaus.mojo: jaxb2-maven-plugin: 1.6 -> API niezgodność napotkano

Description Resource Path Location Type 
Execution configuration of goal org.codehaus.mojo:jaxb2-maven-plugin:1.6:xjc failed: An API incompatibility was encountered while executing org.codehaus.mojo:jaxb2-maven-plugin:1.6:xjc: java.lang.NoSuchMethodError: org.codehaus.plexus.util.DirectoryScanner.setupMatchPatterns()V 
----------------------------------------------------- 
realm = plugin>org.codehaus.mojo:jaxb2-maven-plugin:1.6 
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
urls[0] = file:/C:/develop/maven/repository/org/codehaus/mojo/jaxb2-maven-plugin/1.6/jaxb2-maven-plugin-1.6.jar 
urls[1] = file:/C:/develop/maven/repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar 
urls[2] = file:/C:/develop/maven/repository/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar 
urls[3] = file:/C:/develop/maven/repository/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar 
urls[4] = file:/C:/develop/maven/repository/org/apache/maven/reporting/maven-reporting-api/2.2.1/maven-reporting-api-2.2.1.jar 
urls[5] = file:/C:/develop/maven/repository/org/apache/maven/doxia/doxia-sink-api/1.1/doxia-sink-api-1.1.jar 
urls[6] = file:/C:/develop/maven/repository/org/apache/maven/doxia/doxia-logging-api/1.1/doxia-logging-api-1.1.jar 
urls[7] = file:/C:/develop/maven/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar 
urls[8] = file:/C:/develop/maven/repository/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar 
urls[9] = file:/C:/develop/maven/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar 
urls[10] = file:/C:/develop/maven/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar 
urls[11] = file:/C:/develop/maven/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
urls[12] = file:/C:/develop/maven/repository/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar 
urls[13] = file:/C:/develop/maven/repository/com/sun/xml/bind/jaxb-xjc/2.2.7/jaxb-xjc-2.2.7.jar 
urls[14] = file:/C:/develop/maven/repository/com/sun/xml/bind/jaxb-core/2.2.7/jaxb-core-2.2.7.jar 
urls[15] = file:/C:/develop/maven/repository/javax/xml/bind/jaxb-api/2.2.7/jaxb-api-2.2.7.jar 
urls[16] = file:/C:/develop/maven/repository/com/sun/istack/istack-commons-runtime/2.16/istack-commons-runtime-2.16.jar 
urls[17] = file:/C:/develop/maven/repository/com/sun/xml/bind/jaxb-jxc/2.2.7/jaxb-jxc-2.2.7.jar 
urls[18] = file:/C:/develop/maven/repository/com/sun/xml/bind/jaxb-impl/2.2.7/jaxb-impl-2.2.7.jar 
urls[19] = file:/C:/develop/maven/repository/com/sun/xml/fastinfoset/FastInfoset/1.2.12/FastInfoset-1.2.12.jar 
urls[20] = file:/C:/develop/maven/repository/org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar 
urls[21] = file:/C:/develop/maven/repository/org/codehaus/plexus/plexus-utils/3.0.16/plexus-utils-3.0.16.jar 
Number of foreign imports: 4 
import: Entry[import org.sonatype.plexus.build.incremental from realm ClassRealm[plexus.core, parent: null]] 
import: Entry[import org.codehaus.plexus.util.Scanner from realm ClassRealm[plexus.core, parent: null]] 
import: Entry[import org.codehaus.plexus.util.AbstractScanner from realm ClassRealm[plexus.core, parent: null]] 
import: Entry[import from realm ClassRealm[maven.api, parent: null]] 

----------------------------------------------------- 
(org.codehaus.mojo:jaxb2-maven-plugin:1.6:xjc:configuration:generate-sources) pom.xml 

konfiguracji wtyczki wygląda następująco:

<plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>jaxb2-maven-plugin</artifactId> 
        <version>1.6</version> 
        <executions> 
         <execution> 
          <id>data</id> 
          <goals> 
           <goal>xjc</goal> 
          </goals> 
          <configuration> 
           <schemaDirectory>${project.basedir}/src/main/resources</schemaDirectory> 
           <schemaFiles>WebServiceDataSchema.xsd</schemaFiles> 
           <packageName>my.cool.package.jaxb.data</packageName> <!-- The name of your generated source package --> 
           <outputDirectory>${project.basedir}/src/gen/java</outputDirectory> 
           <target>2.1</target> 
          </configuration> 
         </execution> 

         <execution> 
          <id>configuration</id> 
          <goals> 
           <goal>xjc</goal> 
          </goals> 
          <configuration> 
           <schemaDirectory>${project.basedir}/src/main/resources</schemaDirectory> 
           <schemaFiles>WebServiceConfigurationSchema.xsd</schemaFiles> 
           <packageName>my.cool.package.jaxb.config</packageName> <!-- The name of your generated source package --> 
           <outputDirectory>${project.basedir}/src/gen/java</outputDirectory> 
           <target>2.1</target> 
           <clearOutputDir>false</clearOutputDir> 
          </configuration> 
         </execution> 

        </executions> 

       </plugin> 

czy ktoś ma podobne problemy?

Odpowiedz

2

m2e nie obsługuje wielu bloków wykonawczych z wtyczką 1.6. Jednak komenda linii poleceń poprawnie obsługuje te formularze. Jeśli utworzysz kopię do wtyczki 1.5 jaxb, m2e jest szczęśliwy, ale wtyczka uruchamia tylko pierwszy z bloków wykonawczych, pozostawiając ci inną zepsutą kompilację.

Moje rozwiązanie (do tej pory) to nie używać m2e, choć jest to oczywiście nieoptymalne.

6

Mam podobny błąd. Rozwiązałem go za pomocą wersji 1.5 (zamiast 1.6) jaxb2-maven-plugin.

0

Miałem ten sam problem. Rozwiązałem go, aktualizując do najnowszej wersji Eclipse Luna 4.4 (wersja Java Developer, która zawiera m2e-wtp, a nie wersję Java EE). Chyba zawiera on nowszą wersję m2e-wtp, która rozwiązuje ten problem (?!)