2010-08-11 21 views
5

Je suis en train de générer des haricots à partir d'un xsd en utilisant le jaxb2-maven-plugin plugin maven, mais chaque fois que les haricots sont générés je reçois l'avertissement suivant. Notez que les beans de résultat fonctionnent. Est-ce que quelqu'un sait pourquoi cela se produit?jaxb2-maven-plugin imprime toujours d'avertissement lors de la génération des haricots de XSD

--snip-- 
[INFO] task-segment: [deploy] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [jaxb2:xjc {execution: default}] 
[INFO] Generating source... 
[INFO] parsing a schema... 
[INFO] compiling a schema... 
[WARNING] null[-1,-1] 
org.xml.sax.SAXParseException: generating code 
     at com.sun.tools.xjc.ErrorReceiver.debug(ErrorReceiver.java:113) 
     at com.sun.tools.xjc.Driver.run(Driver.java:315) 
     at org.codehaus.mojo.jaxb2.XjcMojo.execute(XjcMojo.java:301) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
--snip-- 

C'est la config dans le pom.xml

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxb2-maven-plugin</artifactId> 
      <version>1.2</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>xjc</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <packageName>com.some.package.jaxb</packageName> 
       <verbose>true</verbose> 
      </configuration> 
     </plugin> 

Bien que je pense que je suis sur le plan technique 2.0.3 (pas 2.0), voici la ligne de code qui commence cette question : http://grepcode.com/file/repo1.maven.org/maven2/com.sun.xml.bind/jaxb-xjc/2.0/com/sun/tools/xjc/Driver.java#315

** Si je définis verbose à false dans le pom je n'obtiens pas l'avertissement. Est-ce juste un mécanisme de notation bâclée? **

Merci

--Matthias

+0

Pourquoi ne pas utiliser la norme de facto https://maven-jaxb2-plugin.dev.java.net/ à la place? – lexicore

Répondre

4

@lexicore, vous avez raison. Il semble que votre norme «de facto» soit en fait un meilleur choix et fonctionne tout aussi bien. Pour mémoire c'est une bonne lecture sur le differences.

C'est la config je l'ai utilisé. J'ai eu du mal à savoir à quoi ça servait. Espérons que cela aide quelqu'un:

 <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.7.4</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <verbose>true</verbose> 
       <schemaDirectory>src/main/xsd</schemaDirectory> 
       <generatePackage>com.ninja.jaxb</generatePackage> 
      </configuration> 
     </plugin> 
... 
<repositories> 
    <repository> 
     <id>maven-repo2</id> 
     <name>Maven Repository</name> 
     <url>http://repo2.maven.org/maven2</url> 
    </repository> 
</repositories> 
+0

Vous fournissez une solution pour un autre plugin Maven (avec groupId org.jvnet.jaxb2.maven2 et non org.codehaus.mojo). –

6

Le « problème » réside dans l'option verbeuse définie sur true - elle vous verrez le sortir, l'avertissement disparaît.