2012-06-07 17 views
21

wsgenを使用してコンパイル済みのJavaクラスからxsdファイルを生成するmavenプロジェクトがあります。
問題は、生成されたxsdファイルをjarファイルにリソースとして追加したいということです。
リソースフェーズは「プロセスクラス」フェーズの前に実行されているため、追加することはできません。
「プロセスクラス」フェーズの後に追加のリソースを追加する方法はありますか?maven:コンパイル時に生成されるリソースを追加する方法

答えて

33

XSDファイルの出力ディレクトリをターゲット/クラスに定義することをお勧めします(後でパッケージ段階でjarにパッケージ化される補助サブフォルダを使用することがあります)。これは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

チャームのように働いてくれてありがとうlot –

+0

とスキャンするパッケージを指定する方法は?すべてのパッケージではありません – Youssef

+0

これは 'configuration'を' execution'から 'plugin'に移動した後でのみ機能します。 Maven xsdは両方を許可していますが、このプラグインはそうではないようです –

関連する問題