1

マルチ モジュール ビルド ファイルを使用して、かなり複雑な Java プロジェクトのビルドをトリガーします。ここで、Eclipse プロジェクト ファイルを作成したいと思いますが、すべてのモジュールに対してではありません。目標を無視することをpomで定義することは可能ですか?eclipse:eclipse

私が呼び出すマルチモジュール pom のモジュール定義はmvn eclipse:eclipse次のようになります。

<modules>
  <module>../project1/generate/pom.xml</module>
  <module>../project1/pom.xml</module>
  <module>../project2/generate/pom.xml</module>
  <module>../project2/pom.xml</module>
  <!-- and many more projects with or without generate sub modules -->
</modules>

もちろん、pom は Eclipse プロジェクトを作成するためだけに必要なわけではないので、その目標に問題を引き起こすモジュールを削除することはできません。

質問の理由:生成eclipse:eclipseモジュールで実行する と、マニフェスト ファイルの一部の属性が変更され、次のビルドが壊れるという影響があります。そして、私はそれらを常に手動で修正するのにうんざりしています ;)

4

2 に答える 2

1

Maven Advanced Reactor Optionsを使用できます(Maven 2.1以降)。

たとえば、project1とproject2のみをターゲットにするには:

mvn --projects project1, project2 eclipse:eclipse

project1とそのすべての依存関係をターゲットにするには:

mvn --projects project1 --also-make eclipse:eclipse

これは、マルチミューデュルプロジェクトをリアクター化するための標準化された方法を提供し、pom.xmlでの変更を必要としません。

于 2012-10-25T20:46:31.177 に答える
1

これにはMaven プロファイルを使用できます。

定義済みのモジュールを削除し、次のようなものを追加します。

<profiles>
    <profile>
        <id>full</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <modules>
            <module>../project1/generate/pom.xml</module>
            <module>../project1/pom.xml</module>
            <module>../project2/generate/pom.xml</module>
            <module>../project2/pom.xml</module>
        </modules>
    </profile>
    <profile>
        <id>eclipse</id>
        <modules>
            <module>../project1/pom.xml</module>
            <module>../project2/pom.xml</module>
        </modules>
    </profile>
</profiles>

次に、Eclipse 設定を生成する場合:

mvn -Peclipse eclipse:eclipse
于 2012-10-25T09:51:47.447 に答える