2

そこの

maven-ear-plugin のデフォルト構成を定義する親 pom.xml があります

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <modules>
                    <jarModule>
                        <groupId>com.test</groupId>
                        <artifactId>artifact1</artifactId>
                    </jarModule>
                    <jarModule>
                        <groupId>com.test</groupId>
                        <artifactId>artifact2</artifactId>
                    </jarModule>
                </modules>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

<plugins>子 pom では、セクションで maven-ear-plugin を定義しました

<plugin>
    <artifactId>maven-ear-plugin</artifactId>
    <executions>
        <execution>
            <id>default-ear</id>
            <phase>package</phase>
            <goals>
                <goal>ear</goal>
            </goals>
            <configuration>
                <earSourceDirectory>EarContent</earSourceDirectory>
                <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
                <modules>
                    <jarModule>
                        <groupId>com.test</groupId>
                        <artifactId>artifact3</artifactId>
                    </jarModule>
                </modules>
            </configuration>
        </execution>
    </executions>
</plugin>

私の意図は、アーティファクト 1、アーティファクト 2、アーティファクト 3 の 3 つの jar ファイルすべてを耳に含めることです。ただし、ビルド後は、子 pom.xml で定義された artifact3 のみが含まれます。<modules>したがって、デフォルトでは、子 pom.xml の定義は、親 pom で定義されているものをマージするのではなく、上書きするように見えます。実際、<modules>子 pom.xml のセクション全体を削除すると、ビルド後に artifact1 と artifact2 が含まれます。

私の質問は、親 pom と子 pom で定義されたすべての jar モジュールを含める方法があるかどうかです。私はいくつかの ear プロジェクトを持っており、それらすべてに同じ jar モジュールのセットと独自のいくつかの jar モジュールを含める必要があります。各子pom.xmlで繰り返されないように、jarモジュールの共通セットを親に移動しようとしています。

プロジェクトの関係を明確にするために更新します。

parent pom.xml (define maven-ear-plugin in the pluginManagement section)
  -- project1 pom.xml (multi-module project)
      -- myJar-proj1 
      -- myWeb-proj1
      -- myEar-proj1 (define maven-ear-plugin in the <build> section)    
  -- project2 pom.xml (multi-module project)
      -- myJar-proj2
      -- myWeb-proj2
      -- myEar-proj2 (define maven-ear-plugin in the <build> section)
4

1 に答える 1