0

親プロジェクト (pom のみ) といくつかのモジュールがあるとします。groupId を親から継承できることを知って、モジュール poms 内で同じ groupId を繰り返さないようにするにはどうすればよいですか? また、親の artifactId をモジュールの groupId の末尾に追加したいと考えています。

例 親ポンの中に、私は持っています

<groupId>my.proj</groupId>
<artifactId>xyz</artifactId>
<version>1</version>

次に、各モジュールで、今、書く必要があります

<parent>
    <groupId>my.proj</groupId>
    <artifactId>xyz</artifactId>
    <version>1</version>
</parent>
<groupId>my.proj.xyz</groupId>
<artifactId>mod-a</artifactId>

モジュールごとに。しかし、私が望むのは、共通の groupId を取り除くことです (親も削除できる場合に最適ですが、現在の Maven ではそれが不可能であることはわかっています)。

<parent>
    <groupId>my.proj</groupId>
    <artifactId>xyz</artifactId>
    <version>1</version>
</parent>
<artifactId>mod-a</artifactId>

my.proj だけでなく my.proj.xyz の groupId を自動的に受け取ります。これは、モジュールを並べて保持するのではなく、親の下に保持する方が理にかなっているからです。

ありがとうございました。

4

3 に答える 3

2

をパラメータ化することはお勧めしませんgroupId。また、そのエントリを完全にリストしたくないだけなので、それはあなたが求めたものではありません。Maven の動作方法を変更する必要がありますが、個人的には、影響が大きすぎるため、思い通りにならない可能性が高いと思います。

groupIdこれで、親と同じ場合はすでに省略できます。

おそらく、問題を解決するために親com.proj:xyzに電話することから変更することができます。com.proj.xyz:parent

于 2013-09-27T03:44:48.717 に答える
0

作成した内容に基づいて、構造は次のようになります。

   +-- groupId: my.proj artifactId: xyz
        +--- groupId: my.proj.abc artifactId: mod-a
        +--- groupId: my.proj.abc artifactId: mod-b
        +--- groupId: my.proj.abc artifactId: mod-c
        +--- groupId: my.proj.xyz artifactId: mod-a
        +--- groupId: my.proj.xyz artifactId: mod-b
        +--- groupId: my.proj.xyz artifactId: mod-c

これは、構造を次のように変更するための指標です。

   +-- groupId: my.proj artifactId: xyz
        +--- groupId: my.proj.abc artifactId:abc-parent
        !    +--- groupId: my.proj.abc artifactId: mod-a
        !    +--- groupId: my.proj.abc artifactId: mod-b
        !    +--- groupId: my.proj.abc artifactId: mod-c
        !
        +--- groupId: my.proj.xyz artifactId:xyz-parent
             +--- groupId: my.proj.xyz artifactId: mod-a
             +--- groupId: my.proj.xyz artifactId: mod-b
             +--- groupId: my.proj.xyz artifactId: mod-c

これにより、pom は次のようになります。

親 pom.xml:

<groupId>my.proj</groupId>
<artifactId>xyz</artifactId>
<version>1-SNAPSHOT</version>

<modules>
  <module>abc-parent</module>
  <module>xyz-parent</module>
</modules>

あなたのabc親:

<parent>
    <groupId>my.proj</groupId>
    <artifactId>xyz</artifactId>
    <version>1-SNAPSHOT</version>
</parent>

<groupId>my.proj.abc</groupId>
<artifactId>abc-root</artifactId>

abc-mod-a:

<parent>
    <groupId>my.proj.abc</groupId>
    <artifactId>abc-root</artifactId>
    <version>1-SNAPSHOT</version>
</parent>

<artifactId>mod-a</artifactId>

あなたの xyz 親:

<parent>
    <groupId>my.proj</groupId>
    <artifactId>xyz</artifactId>
    <version>1-SNAPSHOT</version>
</parent>

<groupId>my.proj.xyz</groupId>
<artifactId>xyz-root</artifactId>

あなたの xyz-mod-a:

<parent>
    <groupId>my.proj.xyz</groupId>
    <artifactId>xyz-root</artifactId>
    <version>1-SNAPSHOT</version>
</parent>

<artifactId>mod-a</artifactId>

通常、すべてのモジュールで groupId を変更すると、モジュール構造が異なることを示します。

于 2013-09-27T10:33:19.513 に答える