すべての可能性について多くの定型文を繰り返さずに、複数のモジュールの組み合わせで構成されるアーティファクトを構築する方法についてのアドバイスを探しています。
同じTomcatインスタンスで実行さ.war
れているTomcatおよび.amp
Alfrescoにデプロイされるソフトウェアがあります。
Alfresco /に関連するすべては、質問の範囲には.amp
関係ありません。簡単にするために、.war
Mavenに関して単一のアーティファクトを想定します。
私たちは、オープンコアモデルを使用し、で終わるいくつかのコードで構成されて無料版持っている.amp
と.war
角度、フロントエンドとバックエンドのいくつかのライブラリを含むファイルを。
現在、ソフトウェアには2つのプラグインがあります-各プラグインは追加の.amp
ファイルを提供し、.jar
/ configファイルをに追加し、.war
多くの拡張機能があります-各拡張機能はいくつかのAngular-Frontendファイルを上書き/拡張し、XML構成も追加します.war
および/または.amp
今、私は、基本的にベースインストールを介してデプロイ時にプラグイン/拡張機能をコピーするだけの古代のantベースのビルドセットアップからMavenに移行しようとしています。
次のような構成を作成できる必要があります。core + plugin-a + extension-b
またはcore + plugin-a + plugin-b + extension-c
-構成ごとに複数の.amp
アーティファクトと1つの.war
アーティファクトを作成します。
次のような拡張機能を集約することも可能であればいいでしょう core + plugin-a + plugin-b + extension-c + extension-d
現時点では、mavenアセンブリプラグインを.war
とmaven-frontend-pluginに使用しており、assembly-pluginはコンパイルされたアーティファクトを戦争にコピーするだけです。
.war
それ自体はMavenのモジュールです。
この戦略を続行して、すべての拡張機能とすべてのプラグインのモジュールを作成できますが、拡張機能とプラグインのすべての可能な組み合わせのモジュールが必要になります。
さらに悪いことに、一部の拡張機能/プラグインは商用であり、さまざまなリポジトリに存在します。そのため、オープンコアPOMにすべてを追加することはできません。
プロファイルを調べましたが、それで問題が解決するかどうかはわかりません。すべてのサブモジュールに中央レジストリのようなものが必要なのでしょうか。
そのようなmvn clean package -Pextension-a,extension-b,plugin-a
ものがアーティファクトを作成するようなものは素晴らしいでしょう。
Mavenでこの問題に取り組む方法は?これらの要件を備えたプロジェクトで、そこでどのように解決されているかを確認できますか?
結局、私はBazelを見つけましたjvm_rules_external
。
WORKSPACE
git / maven / http /etc.ppを使用して依存関係を許可するファイルの概念はこれに最適です。Bazelを使用してAngularフロントエンドをビルドし、軽量のDockerイメージを作成できるほか、キャッシュされたインクリメンタルビルドも最適です。
ただし、MavenからBazelへの移行は簡単ではありませんが、概念を学習した後は振り返りません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加