私は 5 つの子を持つ Maven プロジェクトを持っていますが、それを実行するときに、最後のプロジェクトを実行しないようにします。そのためにpomファイルから簡単に賞賛することができますが、知りたいのですが、子モジュールを実行から除外するコマンドラインオプションはありますか?
4 に答える
一部のモジュールを除外するために取り組んでいる現在のプロジェクトでこの構成を使用しています。
モジュールを宣言する pom に、毎回実行するモジュールのリストを入れるだけです。
<modules>
<module>this-is</module>
<module>always-needed</module>
</modules>
次に、同じ pom にプロファイル セクションを追加し、毎回実行したくないモジュールを移動します。
<profiles>
<profile>
<id>do-additional-module</id>
<modules>
<module>this-is-rarely-needed</module>
</modules>
</profile>
</profiles>
を実行するmvn package
と、モジュールthis-is
とのみalways-needed
が実行され、プロファイルを指定するとmvn -P do-additional-module package
、リアクターは前のモジュールと を実行しますthis-is-rarely-needed
。
M.
これはprofileで実現できます。 親 pom.xml の Maven プロファイルには、追加の子モジュールを含めることができます。
これが例です。有効にすると、この " include " プロファイルに 2 番目の子モジュールが含まれます。
<modules>
<module>child-module-one</module>
</modules>
<profiles>
<profile>
<id>include</id>
<modules>
<module>child-module-two</module>
</modules>
</profile>
</profile>
親レベル (この例ではコンパイル) で Maven ビルド フェーズをトリガーし、このプロファイルを有効にすると、たとえば、
mvn compile -P include
2 番目の子モジュールを含めます。そのプロファイルをアクティブ化することを避ける場合は、たとえば次のコマンドを実行するだけです:
mvn compile
2 番目の子モジュールは含まれません。
現在のMaven実装にはそのようなオプションはないと思います。
1つのことを試すことができます。最初の4つの子プロジェクトのみを持つ別のプロジェクトを作成します。したがって、5つではなく4つだけを構築する必要がある場合は、それを使用してください。
このために別の親プロジェクトを作成する必要はありません。詳細については、Mavenプロジェクトの集約を参照してください。
簡単な答えは、このようなオプションはありません。
リリース中などの問題を回避するための最善の解決策は、プロファイルを使用することですが、モジュールのレベルではなく、子モジュール自体でより適切に使用することです。
子モジュールでは、プロファイルを使用して、必要なアクションをアクティブ化/非アクティブ化します。
<profiles>
<profile>
<id>whatEver</id>
<build>
...
</build>
</profile>
</profiles>