2011-07-11 16 views
5

Próbowałem wygenerować dwa xmlbeans w jednym projekcie. Każdy na przykład dostaje obiekt uczestnika, więc nie mogę umieścić ich w jednej konfiguracji. Tak jak zrobiłem, użyłem dwóch zdań: oto mój plik pom:Jak wygenerować dwa xmlbeans w jednym pliku pom

  <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>xmlbeans-maven-plugin</artifactId> 
      <version>2.3.3</version> 
      <executions> 
       <execution> 
        <id>xmlbean1</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean1</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <schemaDirectory>src/main/xsd/xmlbean1</schemaDirectory> 
        </configuration> 
       </execution> 
       <execution> 
        <id>xmlbean2</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean2</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <schemaDirectory>src/main/xsd/xmlbean2</schemaDirectory> 
        </configuration> 
       </execution> 
      </executions> 
      <inherited>true</inherited> 
     </plugin> 

Ale to wcale nie działa. Czy ktoś może mi w tym pomóc, dzięki

+0

Czy czy masz jakieś błędy? – drekka

+0

Czy generowanie pojedynczych plików xmlbeans działa? –

+0

Dziękuję wszystkim, mam odpowiedź, następujący pom działa dobrze: – Luke

Odpowiedz

1

Powinieneś spróbować użyć innej, odrębnej fazy do drugiego wywołania. AFAIK tej samej wtyczki nie można wykonać dwa razy w tej samej fazie cyklu życia.

1

To nie działa, ponieważ id służy tylko do wyszukania istniejącego wykonania (jeśli chcesz je poprawić).

Twoim problemem jest to, że Maven nie może uruchomić tej samej wtyczki dwa razy w tym samym phase.

Jakie masz opcje?

  1. Podział że w różnych modułów podrzędnych

  2. Korzystanie Ant stworzyć XMLBeans i używać the antrun element.

Ale zastanawiam się, dlaczego nie można użyć dwóch xmlConfig elementy. Wystarczy umieścić wszystkie swoje .xsd plików w jednym katalogu i utworzyć dowolną liczbę ziaren z nich w razie potrzeby (patrz „Multiple XSDConfig Directories”)

+0

, ponieważ te dwa xmlbeans mają taki sam komponent, jak uczestnik, a maven dostaje konflikt podczas wykonywania kompilacji. – Luke

2

Dzięki wszyscy, dostałem odpowiedź, co następuje pom działa poprawnie:

<executions> 
       <execution> 
        <id>id1</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <schemaDirectory>src/main/xsd/first</schemaDirectory> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/first</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <sourceGenerationDirectory>target/first-resource</sourceGenerationDirectory> 
         <classGenerationDirectory>target/first-class</classGenerationDirectory> 
         <staleFile>target/first/first.stale</staleFile> 
        </configuration> 
       </execution> 
       <execution> 
        <id>id2</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <schemaDirectory>src/main/xsd/second</schemaDirectory> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/second</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <sourceGenerationDirectory>target/second-resource</sourceGenerationDirectory> 
         <classGenerationDirectory>target/second-class</classGenerationDirectory> 
         <staleFile>target/second/second.stale</staleFile> 
        </configuration> 
       </execution> 
      </executions>