問題タブ [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 - コマンドライン Java プロジェクトをパッケージ化する最良の方法
GUI を使用せずに Java コマンド ライン プロジェクトを作成しています。このプロジェクトでは、Spring、Logback、Commons CLI などのオープン ソース プロジェクトをいくつでも使用しています。 、および lib 内の依存 jar 。
私はMaven Assemblyで遊んでいますが、それでも上記のようには出てこず、上記の構造を生成する例は見つかりませんでした. そうすることは可能ですか?さらに、マルチモジュール構造を持つことで、アセンブリ モジュールがコア モジュールを依存関係として見つけることができないため、解決できなかった別の複雑なレイヤーが追加されます。これは私の最初の Maven プロジェクトなので、Maven の仕組みをまだ学んでいます。私は Sonatype の本を読みましたが、ベスト プラクティスのセクションを使用しても不足している依存関係を解決できなかったため、何かを見逃していました。私が見た例には通常、uber 実行可能 jar へのマージが含まれており、その中には Shade プロジェクトを使用するものもあれば、使用しないものもあります。私の質問は、Spring などのサードパーティのライブラリを含む uber jar を実行するのは良い考えですか? それとも、元の zip/lib サブディレクトリ プランに固執する必要がありますか?
maven-2 - Maven を使用して webapp とその独立したプラグインを構築する
プラグイン (maven プラグインではない) を追加できるcoreと呼ぶ webappがありますが、スタンドアロンの webapp として正常に実行およびビルドする必要があります。コアが依存し、コア用に開発されたすべてのプラグインも依存する plugin-lib があります。
このような:
私のディレクトリ構造は単純です:
私の最初の問題は、コアまたは任意のプラグインをビルドし、依存ライブラリもビルドできますか? modulesについて読みましたが、ご覧のとおり、libには2つの親があります。私が本当に望んでいるのは、コアをビルドし、lib もビルドすることです。または、プラグインをビルドした場合は、lib も個別にビルドしたいと思います。また、コアはどのプラグインにも依存しないことに注意してください。
2 つ目の問題は、コアをビルドしてプラグインをビルドする方法です。ただし、コアはプラグインに依存しておらず、プラグインはコアのモジュールであってはなりません。彼らはそうすることができました、それは必要条件ではありませんが、できるだけ独立した状態を維持したいので、私はむしろしたくありません.
現在、プラグインをビルドすると、コア内の /plugin ディレクトリにコピーされ、コア pom に配布プロファイルがあり、このディレクトリから webapp の war 内に既存のプラグインをコピーします。したがって、プロファイルなしでコアをビルドすると、プラグインはコピーされませんが、配布プロファイルを実行すると、はい. これは機能しますが、ライブラリを構築し、プラグインを構築し、コアを構築する必要があるため、面倒です。
最初の問題の二重の依存関係を解決できる pom 構造があるかどうか、および 2 番目の問題を処理し、依存していなくてもコアを介してプラグインを構築する方法があるかどうかを知りたいです。そして、可能であれば、別の pom ではなく、プロファイル内で 2 番目の問題を処理できれば. このプロファイルは、maven-assembly-pluginを使用して、すべてがパックされたtar.gzを作成します。また、できれば維持したいです。
java - マルチモジュールのMavenプロジェクトでSpring Beanを改良していますか?
なぜか空白を描いています。マルチモジュールの Spring/Maven プロジェクトがあります。module1 で「info」というシングルトン Bean を定義すると、module1 内で問題なく動作します。
ただし、このプロジェクトの module2 (module1 に依存) では、「info」Bean のプロパティ値が改善されています。Module2 の Spring 構成には、既に Module1 の構成が含まれています。この後続のモジュールで定義された「情報」Bean にプロパティを設定するために使用する必要がある Spring 構成は何ですか?
java - マルチモジュールMavenプロジェクトでステージを構築する前にユニットテストを実行する
マルチモジュールのMavenプロジェクトがあります。すべてのモジュールには、単体テストがあります。すべてのモジュールの前にクリーンインストールテストを実行し、1つのモジュールのすべてのテストが成功すると、正常にビルドされます。1つのテストが失敗した場合、そのモジュール内の他のすべてのテストは正常に実行されます(または、一部は正常に実行され、他は失敗しました)。最初の障害ユニットテストが配置されたモジュールのビルドが失敗しました。他のモジュールはスキップされます。最初にすべてのモジュールですべての単体テストを実行し、その後、失敗したテストがない場合はすべてのモジュールをビルドするか、1つまたはモードモジュールで1つ以上の失敗したテストがある場合は、すべてのモジュールのビルドをスキップします。手伝ってくれませんか。
maven - マルチモジュール プロジェクトの Maven コピー リソース
私のニーズはかなり基本的なものですが、それに対する明確な答えを見つけることができませんでした.マルチモジュールプロジェクトでリソースを配布できるようにする必要があるだけです.
たとえば、LICENSE ファイルを考えてみましょう。ここでは、これはすべてのモジュールで同じであると想定しています。ファイルは時間の経過とともに変更される可能性があるため、すべてのモジュールに手動でコピーすることはお勧めしません。また、モジュール構造も変更される可能性があるため、プロジェクト フォルダー外のリソースに (相対パスを使用している場合でも) 静的にリンクしないことを好みます。
各モジュールに必要なファイルが与えられることを確実に保証するために使用できるプラグインはありますか? このようなコピーは、親プロジェクトの POM を利用して取得することも、モジュラー階層のスーパー プロジェクトによって直接実行することも同様に許容されます。
maven - Hudson: マルチモジュール Maven プロジェクトのビルドが失敗し、すぐに再び成功する
最上位プロジェクトが個々のモジュールの親として、およびモジュールを宣言するプロジェクトとして機能するマルチモジュール プロジェクトがあります。この最上位プロジェクトのみが Hudson で構成されます (自動 SVN チェックアウトを含む)。簡略化したレイアウトは次のとおりです。
また、model_foo
に依存していkernel
ます。
これで、Hudson はサブ プロジェクトkernel
とmodel_foo
サブ プロジェクトを自動的に検出し、通常はすべて問題なくビルドできます。
kernel
ただし、で新しいクラスを作成して内部で使用するなど、重大な変更を加えるたびに、model_foo
のビルドが失敗しmodel_foo
、その後に成功するビルドが続きます。メール通知のタイトルは
Build failed in Hudson: MyProject » MyProject Model Foo #1545
Hudson build is back to normal : MyProject » MyProject Model Foo #1546
何故ですか?pom.xml がマルチモジュール プロジェクトであり、そのモジュールの親でもあるという事実に関係していると思われMyProject
ますが、それを変更する前に、実際に役立つかどうかを知りたいと思います。
Hudson 2.1.0 を使用しています。
アップデート
web
これは、モジュールの失敗したビルドのログです (model_foo
上の図の に等しい)。MyProject ルート プロジェクトのビルドは同じビルド番号で、成功しました。
新しく導入されたクラスが欠落しているかのように、実際のコンパイラ エラーを取り除きました。
maven - 複数のソースから Maven DepdendencyManagement を共有するにはどうすればよいですか?
Maven プロジェクトのマルチモジュール プロジェクトがあります。一部のモジュールは、他のモジュールによって生成されたライブラリのカスタム パッケージを作成します。使用されているパッケージには、うまく操作する必要があるバージョン管理された依存関係の独自のスイートがあります。
例として、私の親 POM には、例えばcommons-codec:commons-codec 1.4
、私の "core-lib" POM に依存関係 (明示的なバージョンなし) としてそれが含まれている可能性があり、パッケージング モジュールが正しいバージョンにバンドルされていることを確認したいと考えています。ただし、私が使用している特定のタイプのカスタム パッケージには、eg も必要です。またlog4j:log4j 1.2.15
、パッケージ モジュールの実行時に、正しい log4j バージョンもバンドルされるようにしたいと考えています。
ここに問題があります。「{カスタム パッケージ} を作成するプロジェクト」で使用している POM の例では、カスタム パッケージ チームから提供された親を使用しています。親を使用すると、 のバージョン情報が失われcommons-codec
ます。親を使用すると、 のバージョン情報が失われlog4j
ます。
さて、「A と B を同じバージョンに依存させるにはどうすればよいか」と尋ねると、通常、「A と B を同じ親に設定dependencyManagement
し、親にセクションを含める」と答えるでしょう。私の問題は、A、B、および C が同じバージョンに依存する必要があることですが、C を制御することはできません。
これがMavenの「ミックスイン」が対処することを意図していると思いますが、もちろんまだ存在していません。それまでの間、私が行ってきたことは、1 つの親を選択dependencyManagement
してから、別の POM からセクションをコピーして貼り付け、「これを最新の状態に保つようにしてください」というコメントを付けることです。明らかに、これは醜いハックですが、私は双方と最新の状態を維持する別の方法を見つけていません。
eclipse - Eclipse + Maven + Git + マルチモジュール プロジェクト = 不幸
Eclipse と Maven を使用したマルチモジュール プロジェクトがあります。過去にそれを機能させる唯一の方法は、親モジュールが他のモジュールのピアであるプロジェクトにフラット レイアウトを使用することでした。これは、m2eclipse と Subversion で正常に機能しました。
次に、Git と GitHub に移行したいと思います。プロジェクト全体を、すべてのモジュールと共に、GitHub で単一のプロジェクトとして公開したいと考えています。問題は、Eclipse/Git プラグインである EGit が、プロジェクトのグループではなく、一度に 1 つのプロジェクトを管理したいということです。
正解は、標準の Maven 階層レイアウトを使用して、親モジュールとすべてのモジュールを 1 つの単位として管理することです。しかし、Eclipse はそれを好みません。いくらいじっても、Eclipse はネストされたプロジェクトを受け入れることができません。m2Eclipse は階層をサポートしていません: https://issues.sonatype.org/browse/MNGECLIPSE-2291
それで、あなたは何をしますか?コマンドラインから Git を実行し、Eclipse で変更されたファイルを確認する機能を放棄しますか? それともEclipseを放棄しますか?
java - マルチモジュールMavenプロジェクトを1つのWARにアセンブルする方法は?
ここで同様の質問。
結果として得られる1つのWARを3つの異なるMavenモジュールからデプロイしたいと思います。戦争モジュールは絶対に矛盾していません:
JavaクラスといくつかのWEB-INF/アーティファクトを持つ最初のもの
2つ目はAPI(インターフェース)であり、コンテナー内にすでに存在しているか、結果として生じる戦争の一部である必要があります(これが私が望むものです)
3つ目は、実装クラス、WEB-INF /アーティファクト(Springインフラストラクチャ、web.xmlなど)です。
最初のものは、インターフェースと実装に依存します。3つ目は、インターフェイスによって異なります。
私は可能なオプションで完全に混乱しています。
これにオーバーレイを使用しますか?
または、アセンブリプラグインを使用して、2番目のクラスのクラスを統合できるようにしますか?
Cargoプラグインを使用しますか?
または、別のモジュールからwebResourcesを指定した場合、maven-war-pluginによって実行されますか?この男は私とほとんど同じようにやっていますが、2つの戦争モジュールしかなく、アセンブリプラグインもオーバーレイも使用していません。
教えてください、これはどのように適切に行われていますか?
java - Eclipse および SVN の Maven Multimodul プロジェクト
既存のプロジェクト MainProject があります。マルチモジュールプロジェクトに変換したい。Eclipse で、親モジュールを作成しました。これは、pom モジュールと別のモジュール Modul_1 です。
次に、MainProject を親ファイル ディレクトリに移動しました。(実際には、親フォルダーに移動したくありませんでした。残念ながら、Main_project が親モジュールを見つけられるようにするために、そうしなければなりません)
正常に動作します..次のようになります。
Modul_1 はジェンキンスでのみ必要です。これは、プログラマーが MainProject のみを気にする必要があることを意味します。
SVN でプロジェクトをチェックインするにはどうすればよいですか? 同じファイル構造で、またはSVNで個別にチェックインできますか?