3

モジュールの1つ(MODULE-Aなど)がxmlbeansプラグインを使用してソースとクラスを生成するマルチモジュールプロジェクトがあります。そのため、親プロジェクトのクリーン インストールを行うたびに、Eclipse は生成されたすべてのソースを新しいクラスとして認識し、スキーマの変更がないときに同じファイルを何度もコミットしたくありません。この問題を克服するために、xmlbeans ビルドをプロファイルの下にラップして、スキーマの変更があるたびにプロファイルを使用してビルドできるようにしました。しかし、それは問題を完全に解決しませんでした。

親のクリーン ビルドを実行しようとすると、MODULE-A はビルド ディレクトリの下に「schemaorg_apache_xmlbeans」を作成しません (これは、 profile で実行したときに xmlbean プラグインによってのみ生成されるものです)。「schemaorg_apache_xmlbeans」をクリーン タスクから除外するように Maven に指示できます。しかし、これが正しい処理方法であるかどうかを知りたいです。

あなたの応答に感謝します。

前もって感謝します

4

1 に答える 1

0

このアプローチの 1 つの代替方法は、このプラグインを追加することです。

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
               <execution>
                  <id>add-source</id>
                  <phase>generate-sources</phase>
                  <goals>
                     <goal>add-source</goal>
                  </goals>
                  <configuration>
                     <sources>
                        <source>${project.build.directory}/generated-sources/</source>
                     </sources>
                  </configuration>
               </execution>
            </executions>
         </plugin>

これにより、生成されたソースをソース フォルダーとして追加できるようになるため、生成されるたびにそれらをビルドして使用できるようになります。これらをコミットすることはありませんが、実際の jar がビルド/リリースされると、それらはそこにあり、すべて同じように機能します。これにより、スキーマで常に最新のコードを使用できます。これはあなたにとって最善の解決策ではないかもしれませんが、同様の状況に遭遇したとき、それが良い考えであることがわかりました.

于 2013-07-16T18:30:13.563 に答える