3

私は2つのMavenプロジェクトproject/foo/pom.xmlproject/bar/pom.xml. 私はfoo/pom.xml bar`fooに依存しています。bar, and I want that every timecompiles, it'll automatically compile

どうすればmavenでそれを行うことができますか?

更新:mvn jetty:run両方を親プロジェクトに入れることはできますが、子プロジェクトで実行したい場合はどうすればよいですか?

4

4 に答える 4

1

それらを 2 つのモジュールで 1 つのプロジェクトに組み合わせることができます。

プロジェクト構造の例:

親 (pom)
    |- フー (瓶)
    |- バー (瓶)

親ポンで:

<groupId>org.me</groupId>
<artifactId>parent-project</artifactId>
<packaging>pom</packaging>

<modules>
    <module>foo</module>
    <module>bar</module>
</modules>

各子 pom で:

<artifactId>foo</artifactId>
<packaging>jar</packaging>

 <parent>
    <groupId>org.me</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

プロジェクト (両方のモジュール) を Maven でビルドするには、親ディレクトリからこれを実行します。

$ mvn install
于 2012-07-27T09:29:42.250 に答える
1

オプション1

プロジェクト間の依存関係を検出できるJenkinsで両方のビルドをセットアップします。

モジュールの依存関係からの自動ビルド チェーン

Jenkins はプロジェクトの依存関係を POM から読み取ります。それらも Jenkins でビルドされている場合、それらの依存関係のいずれかで新しいビルドが自動的にプロジェクトの新しいビルドを開始するようにトリガーが設定されます。

オプション 2

2 つの Maven プロジェクトが密接に関連している (一緒にリリースされ、同じリビジョン番号を共有している) 場合、それらは実際には同じプロジェクトの 2 つのモジュールでしょうか?

その場合は、親 POM の作成方法に関するガイドラインについて、次のドキュメントをお読みください。

于 2012-07-27T09:17:42.347 に答える
0

これは、maven だけでは不可能です。最も近い方法は、両方をアグリゲーター POM のモジュールとして作成することです。これにより、単一のコマンドで両方を構築できます。mvn install最後のビルド以降に変更があったかどうかはすでに考慮されているため、いくつかの CPU サイクルが節約されていることに注意してください。

于 2012-07-27T09:01:31.703 に答える
0

最初に、Daniel が示したようにマルチモジュール ビルドをセットアップします。次に、親 POM のあるディレクトリに移動します。次に、たとえば、前に bar を自動的にインストールして foo をインストールするには、次のように入力します。

mvn --also-make --projects foo install

これにより、reactor 内の依存関係がチェックされ、foo でインストール ライフ サイクルを実行する前に、bar でインストール ライフ サイクルを実行することが解決されます。

これは、ライフサイクルや目標に関係なく機能します。ただし、jetty:run を指定すると、この目標が両方のプロジェクトで実行されることに注意してください。

この機能の詳細については、http: //maven.apache.org/guides/mini/guide-multiple-modules.htmlを参照してください。

于 2012-07-27T11:39:20.170 に答える