問題タブ [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.
maven - モジュール pom と親 pom を接続しようとしています。相対パスを設定するにはどうすればよいですか?
適切な例が見つからなかったので、ここで質問します。
私のプロジェクト構造は
よし、parentpom.xml にテスト モジュールを追加できます。
しかし、私の人生では、テストプラグインの pom.xml で親 pom への正しい相対パスを見つけることができません。
誰かが私を助けることができますか?または、2 つの ../ を使用することは不可能ですか?
java - マルチモジュール Maven プロジェクトで slf4j+logback を設定するには?
私の Maven プロジェクトには、約 7 つのサブモジュールがあります。そのうちの 6 つは JAR としてパッケージ化され、1 つが WAR としてパッケージ化されます。
各モジュールで個別の logback.xml 構成を作成する必要がありますか? または、他のすべてのモジュールが依存する「共通」モジュールを用意し、そこに 1 つの logback.xml を配置する必要がありますか? 他のオプションはありますか?
ありがとう。
maven - Maven アセンブリ サブモジュール マルチモジュール
こんにちは、マスター ディレクトリのマルチモジュール プロジェクトから jar を組み立てる必要があります。次のような構造を考えてみましょう。
私が達成したいのは、マスターですべてのjarパッケージモジュールを組み立てることです。
今のところ、次のような pom.xml を作成することにより、サブモジュール (A3 および B3) で適切な解決策のみを達成しました。
およびアセンブリ記述子:
私がする時
サブモジュール(A3またはB3)では、個別に独自のサブモジュールをうまく組み立てているようです。
MASTERでアセンブリ記述子を指定する方法がわかりません。A3 および B3 記述子に類似したものは、これを処理しません ([エラー] 少なくとも 1 つのファイルを指定する必要があります)。includeSubModules などの追加のタグをいくつか試しましたが、まだ何もありません。
maven - Mavenプロジェクト構造の作成に関するアドバイス-複数のモジュールと複数のプロジェクト?
次のエンタープライズアプリケーションの階層化の例を考えてみましょう。
- project-services->POJOサービスレイヤー
- project-web-> Webアプリケーション、WARとしてデプロイされた「project-services」に依存
- project-web-services-> Web Servicesは、「project-services」に依存し、別のWARとしてデプロイされ、現在インターネット上で公開されていません
- project-standalone-> Cron Jobs、「project-services」に依存
Mavenでこれを整理するための正しいアプローチは何でしょうか。マルチモジュールのMavenプロジェクトを作成する必要がありますか?'project-services'がMavenモジュールの場合、それぞれが独立したデプロイ可能なユニットである他の3つのプロジェクトと共有できますか?
以前のプロジェクトでは、4つの異なるMavenプロジェクトを作成しただけで、他に何も必要だと感じたことはありません。
私が以前やってきたことよりも良い方法があるかどうかを検証したい。
maven - マルチモジュールプロジェクトと${basedir}プレースホルダー
次の構造のマルチモジュールプロジェクトがあります。
親POMでjavadocプラグインを設定したい。ただし、stylesheet.css
ファイルへのパスを指定する必要があります。したがって、値を使用します${basedir}\src\main\javadoc\stylesheet.css
。しかし、子モジュールの有効なPOMを見ると、${basedir}
は子モジュールのベースディレクトリの絶対パスに置き換えられていますが、そこにはsrc/main/javadoc/stylesheet.css
ファイルがありません。子モジュールでファイルをコピーするstylesheet.css
ことは解決策ではないと思います。
ありがとう
maven - 階層型複数モジュール プロジェクトの Maven 命名規則
階層ディレクトリ構造を持つ複数モジュール プロジェクトでの Maven 命名規則 (groupId、artifactId、およびディレクトリ名) について質問があります。
リサーチ
尋ねる前に、私はこのトピックについて他の Web を調べ、自分で解決したことを調べました。
命名規則のガイドに は、例が示されています。
groupIdはすべてのプロジェクトでプロジェクトを一意に識別するため、命名スキーマを適用する必要があります。パッケージ名の規則に従う必要があります (例: org.apache.maven、org.apache.commons、org.apache.maven.plugins)。
artifactId作成した場合は、小文字を使用し、奇妙な記号を使用せずに、任意の名前を選択できます。(例: maven、commons-math)
これは非常に簡単で理解できますが、まだ不明な点がいくつかあります。
規約に記載されているartifactIdの例は、1 レベルの階層モジュールにのみ適用できます。
例
Maven リポジトリを調べて、いくつかの例を抽出しました。
Springは主に、spring-core、spring-context、spring-context-support という名前を使用します。スタンドアロン モジュールはすべて 1 レベルの階層であり、検索効率を高めるための spring- プレフィックスです。階層はそれほど深くないので問題ありません。
Apache CXFの命名は、Apache にとってはまったく型にはまらないものです。アーティファクトは、最大 5 つの異なるアーティファクトを名前に持つスタンドアロン モジュールです。cxf-tools-wsdlto-databinding-jaxb.
複数のモジュール プロジェクト (cxf-rt) にグループ化できる多くのアーティファクト (cxf-rt-databinding-jaxb、cxf-rt-databinding-aegis、cxf-rt-databinding-xmlbeans、cxf-rt-databinding-sdo) があります。 -databindings)、しかしそうではなかったため、名前はスパゲッティになりました。
最後に、Maven プラグインは、(org.apache.maven の後) 最初の複数モジュール プロジェクトであり、maven-compiler-plugin、maven-enforcer-plugin などのアーティファクトがあります。
非常に多くの例があり、artifactIds (結果としてプロジェクト ディレクトリ) の命名に関してすべてが異なる規則に従っています。
結果
例からベスト プラクティスを取り上げて、階層レベルを確認します。
1 レベルの階層の命名は (
(続き) 2 レベルの階層は次のようになります。
クエスチョンマークが見えますか?そこが
質問
例の規則に従いました (スパゲッティ Apache CXF の例は無視します)。
- ルート - プロジェクト ポータル (例: spring-core、maven-core)
- 第 1 レベルの階層名は、ルート - project-portal-plugins (例: spring-context-support) から継承します。
- 第 2 レベルの階層名 - project-sample-plugin (例: maven-compiler-plugin)。
そして今、セーブやチェックポイントのない古いゲームのように、第 3 レベルで立ち往生しています。
- これは、より深い階層レベルの Maven の例から取得した正しいディレクトリ ネーミング パスですか?
- 単純なディレクトリ名とアーティファクト名をサポートし、より深いレベルでのスパゲッティ名を回避するために従う規則やルールはありますか?
- 単純な名前がある場合、groupId は重複したアーティファクト名 (単純さのために発生します) をリポジトリ内の競合から保存しますか?
- Web/リポジトリで名前が重複しているアーティファクトを検索して見つけることはどうですか (単純さのため)?
プロジェクト構造で、親の project-portal-liferay-plugins-themes のようなモジュールや、さらに悪いことに、子の project-portal-liferay-plugins-themes-white-puppy-wtf-name のようなモジュールを見たくありません。
上記の質問と考えられる問題のいずれかについて意見と実践を提供していただければ、私だけでなく、maven を使用しているすべての人にとっても大きな助けになります。ありがとうございました。
tomcat - Tomcat は、maven マルチ モジュール プロジェクトにデプロイします
jar と war の 2 つのモジュールを含む Maven プロジェクトがあります。war-module は jar に依存します:
早い段階で、org.codehaus.mojo tomcat-maven-plugin プラグインを使用して、コマンドで単一の war プロジェクトをデプロイしました。
しかし、ここではこのコマンドは機能しません。マルチモジュールのケースで戦争プロジェクトを展開するにはどうすればよいですか?
解決策が見つかりました: maven で tomcat プラグインを使用して複数の war をデプロイするにはどうすればよいですか?
これを子戦争プロジェクトの pom.xml に追加しました。
そして、親プロジェクトで実行できます:
maven - Sonar は、Test クラス自体の JaCoCo カバレッジをレポートします。これは正しいです?これを変更するにはどうすればよいですか?
Eclipse プラグインのマルチモジュール Maven プロジェクトがあります。
JaCoCo を使用したコード カバレッジ レポートの生成は機能していますが、統計は間違っているようです。
テスト クラス自体のカバレッジが計算され、一般的なコード カバレッジのパーセンテージに追加されます。
例:
- org.myplugin というプラグインのカバレッジは 50% で、100 行のコードがあります。
- org.myplugin.tests というテスト プラグインのカバレッジは 100% で、100 行のコードがあります。
- 一般的なコード カバレッジのパーセンテージは、75% または 150 行のコードになります。
もちろん、これは正確ではありません。重要なのは、カバレッジが通常のコードの 50% しかないということです。
これは正常な動作ですか?テストクラスのカバレッジを除外するにはどうすればよいですか?
編集: ここに、いくつかの POM ファイルの関連部分を示します。
プロジェクト POM:
プラグイン POM:
テスト プラグイン POM:
maven - マスター pom ファイルを使用して Web アプリケーションのすべてのモジュールをチェックアウトし、すべてのモジュールをビルドする方法
複数のモジュールに依存する Web アプリケーションがあります。それを構築するために、マスター pom.xml ファイルがあります。この pom ファイルでやりたいことは、すべてのモジュールをチェックアウトすることです。以下は私のpomファイルです。
mvn scm:checkout とmvn scm:checkout -check-out-project1を試しましたが、次のエラーが表示されます: チェックアウト コマンドを実行できません: scm プロバイダーを読み込めません。connectionUrl パラメータを定義する必要があります。
すでにpomファイル内でconnectionUrlパラメーターが定義されているため、これがなぜ起こっているのかわかりません。取得したいアイデアのポイントは、複数のプロジェクトを同時にチェックアウトできるようにpomファイルを構成することです。ここで何が間違っているのか教えてください。事前に感謝します。
maven - 組織全体の POM を使用するプロジェクトを保存およびチェックアウトする方法は?
Eclipse には、私が使用している優れた機能があります。SCM から Maven プロジェクトをチェックアウトします。これは、マルチモジュール プロジェクトの親 pom を取得してチェックアウトし、そのすべてのモジュールをローカル ワークステーションにチェックアウトします。とても使いやすく、とてもきれいです。チームで使うには最高です。プロジェクトを階層的に保存します(これは私が好きです)...たとえば、親のpomはルートであり、すべてのモジュールは親内のフォルダーにあります。
ただし、ここでは別の要素を追加する予定です。ほとんど変更されない設定のための組織全体の POM です。私が混乱している唯一のことは、組織全体の pom を使用する他の (関係のない) プロジェクトの構造がどのように変更されるかということです。他のスーパーポムを親会社の「モジュール」としてリストしたくありません。非常にシンプルにしたいだけです。
各プロジェクトに 3 つのレベルのフォルダーを持たずに、マルチモジュールの親プロジェクト (POM パッケージを使用するプロジェクト) を実際に組織全体の pom のモジュールにする方法はありますか? たとえば、その pom をアーカイブ リポジトリに保存して、依存関係を使用して解決できるようにすることはできますか (実際にファイルをプロジェクトのルートに置くのではなく)。
これを機能させるには、プロジェクトを階層構造からフラット構造 (親と同じディレクトリにあるすべてのモジュール) に変更する必要がありますか?持っていますか?
この構造を使用する組織で働く人々は、通常、これらのプロジェクトをどのように保存およびチェックアウトしますか? ここで何が欠けていますか?マルチモジュール プロジェクト (親 pom なし) は非常にクリーンで使いやすいです。別のレイヤー(スーパースーパーポン)を追加すると、本当に混乱します!
ありがとう!