プラグイン/拡張機能を使用してカスタマイズされたビルドのMavenベストプラクティス?

mt_

すべての可能性について多くの定型文を繰り返さずに、複数のモジュールの組み合わせで構成されるアーティファクトを構築する方法についてのアドバイスを探しています。

同じTomcatインスタンスで実行さ.warれているTomcatおよび.ampAlfrescoにデプロイされるソフトウェアがあります。

Alfresco /に関連するすべては、質問の範囲には.amp 関係ありません簡単にするために、.warMavenに関して単一のアーティファクトを想定します。

私たちは、オープンコアモデルを使用し、で終わるいくつかのコードで構成されて無料版持っている.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でこの問題に取り組む方法は?これらの要件を備えたプロジェクトで、そこでどのように解決されているかを確認できますか?

mt_

結局、私はBazel見つけましjvm_rules_external

WORKSPACEgit / maven / http /etc.ppを使用して依存関係を許可するファイルの概念はこれに最適です。Bazelを使用してAngularフロントエンドをビルドし、軽量のDockerイメージを作成できるほか、キャッシュされたインクリメンタルビルドも最適です。

ただし、MavenからBazelへの移行は簡単ではありませんが、概念を学習した後は振り返りません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

マーケットプレイスを通じてインストールされたすべての(ビルドパイプライン)新しい拡張機能は、「タスクの追加」に表示されません

分類Dev

カスタムプラグイン拡張機能内のネストされたオブジェクト

分類Dev

Scala Sparkプログラム用のjenkinsを使用したMavenビルド:「インストールするプライマリアーティファクトはなく、代わりにアタッチされたアーティファクトをインストールします

分類Dev

「エンタープライズポリシーによってインストールされました」というラベルの付いた不正な拡張機能を削除する方法

分類Dev

surefireプラグインを使用してカスタマイズされたフォルダー構造でテストを実行する方法

分類Dev

tornadofxでカスタマイズされたUIコンポーネントを作成するためのベストプラクティスは何ですか?

分類Dev

pandasとMatplotlibを使用してカスタマイズされたDateTimeインデックスを持つグループ化された棒グラフ

分類Dev

chromeのcontent_scriptsまたは拡張機能のバックグラウンドスクリプトを使用して、ファイルシステム上のファイルに書き込むことは可能ですか?

分類Dev

ローカライズされたChrome拡張機能の言語のドロップダウンリストを並べ替える

分類Dev

カスタマイズされたRailsフォームテンプレートのフィールドにクラスを追加する

分類Dev

カスタマイズされたポップアップメニュー拡張機能の選択イベントから選択されたオブジェクト値を取得するにはどうすればよいですか?

分類Dev

Ouput(GraphVizの場合)プライベート変数を持つクラスをバンドルされたプロパティとして使用して、グラフの頂点をそのプロパティでブーストします

分類Dev

プラグインがアクティブ化されましたが、デスクトップのワードプレスで機能していません

分類Dev

Angular2タイプスクリプトが機能しないイベントによって呼び出されたメソッドを介してクラス変数値またはクラスプロパティ値を変更する

分類Dev

プラグインの依存関係がネストされたカスタムワードプレスプラグインを使用した単体テスト

分類Dev

1つのメソッドをオーバーライドして抽象クラスを拡張するためのJavaのベストプラクティス

分類Dev

カスタムスタイルが適用されている場合、拡張画像プラグインが正しく機能しない

分類Dev

クライアントによって追加されたOpenSSLカスタム拡張機能を取得する

分類Dev

すべてのVSCodeプラグイン/拡張機能をアンインストールしますか?

分類Dev

SwiftUIColor拡張機能のベストプラクティス

分類Dev

インストールされたPCNTL拡張機能をMAMPのコマンドラインPHPで使用できるようにします

分類Dev

アンドロイドを使用して音声コマンド(グーグルアシスタント)を介して私のアンドロイドアプリケーション内で指定されたアクティビティを開く方法

分類Dev

Vegasjqueryプラグインを使用してフルスクリーンの背景画像のスライドショーをカスタマイズする方法

分類Dev

ベストプラクティス:カスタムjspタグまたはインクルードタグ?

分類Dev

Mavenでビルドプラグイン/拡張機能/ ...を継承します

分類Dev

ES6クラスインスタンスのプロパティとメソッドを使用してオブジェクトを拡張する方法

分類Dev

「ナイトリービルド」機能を使用して、カスタマイズされたCircle CIビルドスクリプトを実行できますか?

分類Dev

インターフェイスから継承されたメソッドを表示するためのVisualStudio2019の拡張機能/プラグイン

分類Dev

プライベートグローバル変数を拡張機能「プロパティ」として使用するのはコードの臭いですか?

Related 関連記事

  1. 1

    マーケットプレイスを通じてインストールされたすべての(ビルドパイプライン)新しい拡張機能は、「タスクの追加」に表示されません

  2. 2

    カスタムプラグイン拡張機能内のネストされたオブジェクト

  3. 3

    Scala Sparkプログラム用のjenkinsを使用したMavenビルド:「インストールするプライマリアーティファクトはなく、代わりにアタッチされたアーティファクトをインストールします

  4. 4

    「エンタープライズポリシーによってインストールされました」というラベルの付いた不正な拡張機能を削除する方法

  5. 5

    surefireプラグインを使用してカスタマイズされたフォルダー構造でテストを実行する方法

  6. 6

    tornadofxでカスタマイズされたUIコンポーネントを作成するためのベストプラクティスは何ですか?

  7. 7

    pandasとMatplotlibを使用してカスタマイズされたDateTimeインデックスを持つグループ化された棒グラフ

  8. 8

    chromeのcontent_scriptsまたは拡張機能のバックグラウンドスクリプトを使用して、ファイルシステム上のファイルに書き込むことは可能ですか?

  9. 9

    ローカライズされたChrome拡張機能の言語のドロップダウンリストを並べ替える

  10. 10

    カスタマイズされたRailsフォームテンプレートのフィールドにクラスを追加する

  11. 11

    カスタマイズされたポップアップメニュー拡張機能の選択イベントから選択されたオブジェクト値を取得するにはどうすればよいですか?

  12. 12

    Ouput(GraphVizの場合)プライベート変数を持つクラスをバンドルされたプロパティとして使用して、グラフの頂点をそのプロパティでブーストします

  13. 13

    プラグインがアクティブ化されましたが、デスクトップのワードプレスで機能していません

  14. 14

    Angular2タイプスクリプトが機能しないイベントによって呼び出されたメソッドを介してクラス変数値またはクラスプロパティ値を変更する

  15. 15

    プラグインの依存関係がネストされたカスタムワードプレスプラグインを使用した単体テスト

  16. 16

    1つのメソッドをオーバーライドして抽象クラスを拡張するためのJavaのベストプラクティス

  17. 17

    カスタムスタイルが適用されている場合、拡張画像プラグインが正しく機能しない

  18. 18

    クライアントによって追加されたOpenSSLカスタム拡張機能を取得する

  19. 19

    すべてのVSCodeプラグイン/拡張機能をアンインストールしますか?

  20. 20

    SwiftUIColor拡張機能のベストプラクティス

  21. 21

    インストールされたPCNTL拡張機能をMAMPのコマンドラインPHPで使用できるようにします

  22. 22

    アンドロイドを使用して音声コマンド(グーグルアシスタント)を介して私のアンドロイドアプリケーション内で指定されたアクティビティを開く方法

  23. 23

    Vegasjqueryプラグインを使用してフルスクリーンの背景画像のスライドショーをカスタマイズする方法

  24. 24

    ベストプラクティス:カスタムjspタグまたはインクルードタグ?

  25. 25

    Mavenでビルドプラグイン/拡張機能/ ...を継承します

  26. 26

    ES6クラスインスタンスのプロパティとメソッドを使用してオブジェクトを拡張する方法

  27. 27

    「ナイトリービルド」機能を使用して、カスタマイズされたCircle CIビルドスクリプトを実行できますか?

  28. 28

    インターフェイスから継承されたメソッドを表示するためのVisualStudio2019の拡張機能/プラグイン

  29. 29

    プライベートグローバル変数を拡張機能「プロパティ」として使用するのはコードの臭いですか?

ホットタグ

アーカイブ