38

コンパイルされたJavaクラスから XSDファイルを生成するためにwsgenを使用するMavenプロジェクトがあります。

問題は、生成されたファイルをリソースとしてjarに追加したいということです。ただし、resourceフェーズはフェーズの前に実行されるためprocess-classes、追加できません。

process-classesフェーズで生成されたリソースを追加するようにMavenに指示する方法はありますか?

4

1 に答える 1

53

XSD ファイルの出力ディレクトリを target/classes に定義することをお勧めします (後でパッケージ フェーズで 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 部分の呼び出しに使用されるプラグインの後にリソース プラグインが配置されるように注意する必要があります。代わりに準備パッケージフェーズを使用して、リソースが正しくパッケージ化されることを確認することもできます。

于 2012-06-07T16:18:33.830 に答える