問題タブ [multi-module]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 単一のGitリポジトリでホストされているマルチモジュールMavenプロジェクトをリリースする
単一のgitリポジトリに含まれるマルチモジュールプロジェクトの個々のモジュールをリリースしようとしています。
フォルダ構造は次のようになります。
<modules>
親pomは、タグを使用することで意味のある方法ですべてのサブコンポーネントを構築する方法として使用されます。本質的には、API、データベース、コアの順に構築します。
プロジェクトはSVNでホストされて開始され、mavenタグのリポジトリ内のさまざまなパスをポイントするだけで、コマンドをscm
簡単に再生できました。maven release
これはGitには当てはまらないようです。
実行mvn release:prepare
すると、必要に応じてapi pomに変更が加えられますが、実行mvn release:perform
すると、親pomのビルドが試行され、database / pom.xmlにリストされているapi-snapshot依存関係を解決できないため、データベースパッケージのビルドに失敗します。 。
Gitリポジトリ内の特定のモジュールをリリースできるようにscmタグを構成するにはどうすればよいですか?これも可能ですか?
編集:pomサンプルの追加
pomファイルがどのように表示されるかのセットアップ例を次に示します。
親pom.xml
api / pom.xml
pomはdatabase
に非常によく似api
ていますが、に依存していapi
ます。同じことがcore
、に依存しますdatabase
(そしてそれを通してapi
)に依存します。
api
ただし、アーティファクト自体は、クライアントAPIとバックエンドAPIdatabase
を定義するように、それ自体が重要です。これらは両方とも、アプリケーションとの統合に使用されます。これから、それらを別々にリリースするという当初の考えが生まれます。親pomは、スタック全体をより簡単に構築できるようにするための後付けにすぎません。api
database
maven - マルチモジュールのジャージ Web サービスをコンパイルして実行する方法は?
私はmavenを初めて使用し、このチュートリアルに従って新しいマルチモジュールジャージWebサービスを作成しようとしています. だから今、私のプロジェクトは3つのmavenモジュールで構成されています:
今、私はMavenプロジェクトが初めてなので、これらのモジュールをコンパイルしてWebサービスを実行する方法がわかりません。これら 3 つのモジュールのいずれかを更新する場合、どのコマンドを使用すればよいですか?
maven - マルチモジュール プロジェクトで特定のモジュールの Maven プロファイルを有効にする方法
親POMと5つ以上のモジュールで構成されるマルチモジュールMavenプロジェクトがあります。
カスタムの「自動デプロイ」プロファイルを有効にすると、各モジュールをビルドの一部として実行中のサーバーにデプロイできます。これは、モジュールごとにデプロイされる方法/内容が少し異なるため、各モジュールで明示的に定義されています。
ただし、親POMからビルドする場合、「自動デプロイ」プロファイルをアクティブにすると、Mavenはすべてのモジュールをデプロイすることになります.これは、(開発プロセスなどに基づいて)私たちが行う必要があることはほとんどありません. ただし、複数のモジュール間で変更があり、一部のモジュール間に依存関係があるため、ルートからビルドしたいと考えています。
親 POM からビルドするときに、すべてではなくモジュールの 1 つだけに対してカスタムの「自動デプロイ」プロファイルをアクティブにする方法はありますか?
ありがとう
maven - マルチモジュール プロジェクトの一部のモジュールに JNI を追加する
私のマルチモジュール プロジェクトには 10 個のモジュールが含まれており、そのうち 3 個にはサードパーティの jni が必要です。3 人は、テスト実行のために jni アーティファクトを解凍し、その場所を LD_LIBRARY_PATH に追加する必要があります。
この状況を処理するためのエレガントな方法は何ですか?
- 依存関係を追加し、maven-dependency-plugin 実行の確実なプロパティを介して 3 つのモジュールに展開します (dont-repeat-yourself 原則に違反し、スケーリングしません)。
- これらの手順で中央 pom のプロファイルを使用し、needsFooJni プロパティでアクティブ化します (プロファイルはモジュールごとではなく、プラットフォームまたはその他のビルド全体のニーズに使用する必要があります)。
- トップレベルの pom のプロパティによって制御される実行を使用します (少し壊れやすいようです)。
それで、この種の状況を処理するためのエレガントなmavenの方法は何ですか。そのため、私のネイティブの依存関係はテスト段階で使用されます。
ありがとう
ピーター
maven - マルチモジュールのMavenプロジェクトを作成する理由と時期
Mavenのマルチモジュールプロジェクトについて一般的な質問があります。いつ、なぜそれを選ぶのですか?
java - マルチモジュラー プロジェクトで ear モジュールを親モジュールとして定義することは可能ですか?
マルチモジュラー プロジェクトで ear モジュールを親モジュールとして定義することは可能ですか?
次のプロジェクト構造があります。
- モジュール EAR-1 は ModuleA と ModuleB の集約です
- モジュール EAR-2 は、ModuleA と ModuleC の集約です。
どちらも展開する耳を生成する必要があります。
親モジュール用のダミーモジュールを持ちたくありません。グローバルな依存関係と構成を既存のプロジェクトにパックしたい。
これらすべての一般情報を配置するのに適切なモジュール/pomはどれですか。このポンポンは私の親ポンポンになります。
maven - Mavenマルチモジュールプロジェクト+ルートpomプラグイン
私はMavenマルチモジュールプロジェクトを持っていますが、この構成を配置するとなぜですか?
ルートpomとmvnでプロジェクトをインストールすると、rebel.xmlファイルは生成されません。mvn org.zeroturnaround:jrebel-maven-plugin:1.1.3:generateを使用して生成できますが、これはtarget / classesの下にrebel.xmlを作成するだけで、jar\warパッケージには含まれません。
しかし、上記の構成を個々のMavenモジュールに入れると、インストール中に生成され、process-resourcesに従ってパッケージに含まれます。
しかし、すべてのモジュールでプラグインを複製したくはありませんが、ルートpomにプラグインを配置するだけで、インストール中にrebel.xmlファイルを生成し、パッケージに含める必要があります。
Mavenがどのように機能するかがわかりませんか?
java - マルチモジュール アプリケーションの Maven
メインプロジェクトがサブモジュールに依存するマルチモジュールmavenプロジェクトがあります。サブモジュールのすべての依存関係は、次のようにバージョンごとに定義されます${pom.version}
。Mavenリリースプラグインを使用しています。リリースを準備しようとすると、サブモジュールのバージョンが見つからないというエラーが発生しました。
例:
main pom は version1.0
にあり、リリースしようとしています。Maven はすべてのサブモジュールを version1.1
にビルドしてから、親をビルドしようとするとクラッシュします。見つからないからsub-module-1.1
です。
Mavenにビルドするように指示する方法がわかりません。ビルドするサブモジュールごとにローカルレポにすぐにインストールします。私はmaven2を使用しています。
私のポン:
eclipse - Eclipsem2eマルチモジュールプロジェクトのチェックアウトとMavenへの変換
私は最近、いくつかの事実調査/デバッグを行うためにapacheプロジェクトをチェックアウトする必要がありました(具体的には、maven-surefire-plugin、この質問を参照してください)。これは、他のほとんどのApacheプロジェクトと同様に、Mavenマルチモジュールプロジェクトです。そこで、Eclipseで、SVNリポジトリブラウザを開き、新しいリポジトリを追加して、プロジェクトを見つけますright-click->Checkout...
。ウィザードCheckout as a project in the workspace
で、プロジェクトの名前をクリックして入力します。
私はプロジェクトを持っています、今私はeclipseにそのMavenプロジェクトを知らせる必要がありright-click->Configure->Convert to Maven Project
ます。これで、親プロジェクトはMavenプロジェクトになります。私はできますright-click->Run As->Maven Build
、そしてそれは働きます。ただし、すべてのモジュールは単なるフォルダーです。Eclipseは、ソースコードがどこにあるか、またはソースコードが存在する場合でも、それについて何も知りません。単一のモジュールプロジェクトでは、ソースフォルダー、ビルドフォルダー、およびその他の構成が自動的に設定されます。さらに、マルチモジュールプロジェクトを最初から作成する場合は、最初に親プロジェクトを作成し、モジュールを追加すると、それぞれが親プロジェクトの下にある物理ディレクトリを持つEclipseの個別のプロジェクトとして表示されます。デフォルトのMavenビルドプロセスで必要に応じてフォルダー。
これで、新しいプロジェクトを作成するときにどのように行われるかがわかったのでFile->New->Project...
、選択General->Project
して、プロジェクトに名前を付け(モジュール名と一致させます)、チェックを外して、親プロジェクトフォルダー内のモジュールへのパスにUse default location
設定します。Location:
をクリックしFinish
、他のモジュールごとにプロセスを繰り返した後、私は期待するものに似たものを手に入れました。ここで、親プロジェクトと同じ方法で、すべての個々のモジュールをMavenモジュールに変換する必要があります。素晴らしいです、それらはすべてMavenプロジェクトですよね?
それで私はそれらを開きます、そしてソースフォルダは設定されていません。
ああ...それから私は各プロジェクトに行き、それをひねって開き、そして私がsrc
フォルダに置くright-click->Build Path->Use as Source Folder
。泡立てて、すすぎ、繰り返します...すべてのプロジェクトを完了すると、このプロジェクトを最初から始めたように見えます。物事は機能します。
私の質問は、それは本当にこれほど難しいのかということです。ショートカットがありませんか?Configure->Convert to Maven Project
親のpomがそれがマルチモジュールプロジェクトであることに気づき、私のためにすべての作業を行ったとしたら、それは意味がありませんか?これは、apacheプロジェクトにとって非常に苦痛なプロセスです。すべてのプロジェクトに多くのモジュールがあるように見えるからです...より良いプロセスを知っている人はいますか?
maven - Maven マルチモジュール データ アグリゲータ
基本的に次のことを行う必要があるmavenプラグインを開発する必要があります。
マルチモジュール プロジェクトの構造は次のようになります。
サンプルプロジェクト
集約POM
各モジュールのレビュー フォルダーには、XML ファイルがあります。これで、プラグインはそれらの XML 内の特定のエントリの数をカウントし、カウントの詳細を含むテキスト ファイルを生成する必要があります。テキスト ファイルは、その特定のモジュールのカウントを使用して、モジュールごとに生成する必要があります。また、すべてのモジュールの合計数を含むテキスト ファイルが生成されます (累積レポート)。私はこれを機能させましたが、プラグインはすべてのモジュールに対して一度実行され、次にルートレベルで実行され、そのような XML についてすべてのモジュールを再度スキャンします。すでに利用可能なすべてのモジュールの数から合計数を取得する方法が必要です。私はプロセスが再び起こることを望んでいません。@aggregator を試してみましたが、役に立たないようです。
より良い解決策はありますか?