2012-06-07 2 views
21

У меня есть проект maven, который использует wsgen для генерации xsd-файлов из скомпилированных классов Java.
Проблема в том, что я хочу добавить сгенерированные файлы xsd в банку в качестве ресурсов.
Поскольку фаза ресурса работает до фазы «process-classes», я не могу их добавить.
Есть ли способ добавить дополнительный ресурс после фазы «process-classes»?maven: Как добавить ресурсы, которые сгенерированы после этапа компиляции

ответ

33

Я бы предложил определить выходной каталог для XSD-файлов в целевые/классы (может быть с дополнительной подпапкой, которая будет упакована позже в фазе упаковки в банку. Этого можно достичь, используя maven-resources-plugin.

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>3.0.2</version> 
     <executions> 
      <execution> 
      <id>copy-resources</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${project.build.outputDirectory}</outputDirectory> 
       <resources>   
       <resource> 
        <directory>${basedir}/target/xsd-out</directory> 
        <filtering>false</filtering> 
       </resource> 
       </resources>    
      </configuration>    
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

Вы должны заботиться о том, что плагин ресурсов позиционируется после того, как плагин, который используется для вызова wsgen часть. Вы можете также использовать подготовить-пакет фазы вместо того, чтобы убедиться, что ресурсы будут правильно Упакованный.

+0

Работал как шарм! лот –

+0

и как указать пакет для сканирования? не все пакеты – Youssef

+0

Это работало только после того, как я переместил 'configuration' из' execute' в 'plugin'. Maven xsd позволяет обоим, но этот плагин, похоже, не –

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