1

私はMavenマルチモジュールプロジェクトを持っており、プロファイルを使用してPOMプロパティに基づいて2つのケースのプラグインの構成をカスタマイズできることを望んでいましたが、プロファイルは外部プロパティによってのみアクティブ化でき、POMプロパティによってはアクティブ化できないことがわかりました。別のプロジェクト構成を作成する別の方法を探していて、いくつかのアイデアを得たいと思いました。これが私の設定です

私は3レベルのツリーを持っています:多くのサブモジュールA、B、C、...を持つルート親POM Xであり、これらの各モジュールには2つのサブモジュール1と2があります(つまり、A1、A2、B1、B2など)。

私がする必要があるのは、タイプ1のすべてのモジュール用にリーフモジュールの構成をカスタマイズし、タイプ2のすべてのモジュール用に別のリーフモジュールの構成をカスタマイズすることです。 1と2は、それぞれの親からのデータをすでに共有しています(例のAまたはB)。他に方法がない場合は、すべての共通データをAからA1およびA2にプッシュダウンし(理想的ではない、DRY原則)、すべての1を共通の1親から継承させますが、これを回避しようとしています。私が言ったように、私が試したのは、ツリーの葉に1または2のどちらであるかを指定するプロパティを設定し、2つの異なるプロファイルを祖父母のPOM Xに配置し、プロパティに基づいてプロファイルをアクティブ化することでした。 。これはうまくいきませんでした。

他に何か提案はありますか?

4

1 に答える 1

-1

私はあなたがあなたの目標を達成できると信じています<pluginManagement>

たとえば、親 POM には次のようなものがあります。

<pluginManagement>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.5</version>
      <configuration>
         <systemPropertyVariables>
              <vendor.license.file>../licenses/vendor.lic</vendor.license.file>
         </systemPropertyVariables>
      </configuration>
    </plugin>
</pluginManagement>

これは、POM の子モジュールの Surefire バージョン 2.5 を定義します。実際には、子プロジェクトが継承 (およびオーバーライド) する構成など、プラグイン構成にバージョン以外のものを入れることができることに注意してください。Maven POM リファレンス - プラグイン管理を参照してください。

于 2012-09-19T14:12:16.203 に答える