2014-02-25 2 views
0

Я новичок в maven, это первый раз, когда я использую maven-jaxb2-plugin для создания Java-классов из схемы .xsd.Незаконный шаблон с maven-jaxb2-plugin

Это мой pom.xml:

<properties> 
    <java.source.version>1.6</java.source.version> 
    <java.target.version>1.6</java.target.version> 
</properties> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java.source.version}</source> 
       <target>${java.target.version}</target> 
      </configuration> 

     </plugin> 


     <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.8.3</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
       </execution> 
      </executions> 

      <configuration> 
       <schemaDirectory>src/main/resources/schema</schemaDirectory> 
       <schemaIncludes> 
        <include>mySchema.xsd</include> 
       </schemaIncludes> 
       <generatePackage>it.mycompany.jaxb2</generatePackage> 
       <readOnly>true</readOnly> 
      </configuration> 
     </plugin> 
    </plugins> 
    </build>  
<dependencies> 
    <!-- A few dependiences --> 
</dependencies> 

Проблема в том, что, когда я пытаюсь запустить

МВН установки

я получаю следующую ошибку

Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.8.3:generate failed: Illegal pattern character 'g' 
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:115) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
... 20 more 
    Caused by: java.lang.IllegalArgumentException: Illegal pattern character 'g' 
at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:768) 
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:575) 
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:500) 
at com.sun.tools.xjc.Options.getPrologComment(Options.java:937) 
at com.sun.tools.xjc.addon.episode.PluginImpl.run(PluginImpl.java:177) 
at com.sun.tools.xjc.model.Model.generateCode(Model.java:294) 
at org.jvnet.mjiip.v_2_2.XJC22Mojo.generateCode(XJC22Mojo.java:70) 
at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:45) 
at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:29) 
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.doExecute(RawXJC2Mojo.java:318) 
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.execute(RawXJC2Mojo.java:160) 
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) 
... 21 more 

Maven настроена таким образом:

MVN --version Maven дома: C: \ Program Files (x86) \ апач-Maven-3.1.1 \ Bin .. Java версия: 1.6.0_45, поставщик: Sun Microsystems Inc. Домашняя страница Java: C: \ Program Files (x86) \ Java \ jdk1.6.0_45 \ jre Язык по умолчанию: it_IT, кодировка платформы: Cp1252 Название ОС: «windows 8», версия: «6.2», арка: «x86», семья: «окна»

Где я делаю неправильно?

+1

Как говорит stacktrace, у вас есть проблема с форматом даты, определенным где-то, а не в вашем pom.xml. Может быть, в XSD? – fge

ответ

0

Проблема заключалась в том, что Maven-jaxb2-плагин по умолчанию используется версия 2.2.6 JAXB-XJC, эта версия имеет некоторые проблемы с

По умолчанию локали: it_IT

но работает только с US Locale. Затем я добавил следующую зависимость от моего pom

<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-xjc</artifactId> 
    <version>2.2.5</version> 
    </dependency> 

и теперь все работает.

Смежные вопросы