0

ここにはたくさんの情報があることは知っています... しかし、このような問題を抱えている人は他にもいるかもしれません。

よし、私たちの環境の概要を説明することから始めましょう。

約 11 個の JAR を持つマルチモジュール Maven プロジェクトがあります。これらの内部 JAR に依存するのは 9 つの WAR ファイルで、そのうち 8 つが EAR ファイルに配置されます。残りの WAR ファイルは、個別のアプリケーションとして単独でデプロイされます。(EAR に存在する) 8 つの WAR ファイルがビルドされると、それらはスキニー WAR ファイルとしてビルドされるため、結果の EAR ファイルは最小サイズになり、APP-INF/lib セクションにすべての依存関係が含まれます。これはすべて問題なく動作します。現在、大量のメモリと CPU を備えたリモートの WebLogic 10.3 サーバーにデプロイしているため、個々のマシンには負荷がかかっていません。また、継続的インテグレーション ビルド サーバーを使用して毎晩のスナップショットを公開しています。

デプロイしているアーティファクト:
8 つの WAR ファイル、11 の内部 JAR、およびサードパーティ ライブラリを含む EAR ファイル: ~70MB
その他の WAR ファイル: ~110MB

一部のソフトウェア エンジニアは、VPN 接続を介して自宅で作業し、増分/ホット デプロイ オプションを利用したいと考えています。それ以外の場合は、Web ロジック/Maven を使用してデプロイする方法が原因で、EAR ファイル全体または 110 MB の WAR ファイルを作成して VPN 経由でアップロードする必要があります。これは面白くないし、速くもない。私はJRebelを読んでいて、他の誰かがリモート展開を行うマルチモジュール Maven プロジェクトで JRebel を使用しているかどうか、またそれを効率的に行う方法を知りたいと思っていました。

私の読書のいくつかから、サーバーに「変更をアップロード」し、rebel.xml構成でその特定の展開のディレクトリを読み取ることをお勧めします...まあ、目前の問題につながります。サーバーと適切なフォルダーにアップロードできるように、変更されたリソース/新しくコンパイルされたクラスファイルを他のディレクトリにダンプするように Maven に指示するにはどうすればよいですか (私たちのサーバーは、さまざまなポートで実行されている 10 以上の WebLogic インスタンスのようなものをホストしています。デベロッパー)。または、開発者に自分のワークスペース フォルダーをネットワークと共有させ、適切な //COMPUTERNAME/workspace/jarProjectName/target/classes フォルダーを指す rebel.xml ファイル (たとえば、JAR 内) を構成します。私が予見する問題は、WebLogic を起動するたびに、すべての . これは、rebel.xml ファイルが最初に優先されるためです。これは、VPN 経由ではひどいものになるからです。ただし、デプロイが開始された後は、ホット デプロイは通常どおり機能するはずです。最初の起動時にすべてのクラスをネットワーク経由で転送するという不必要なオーバーヘッドが発生するのは望ましくありません。それだけでなく、開発者がオフィスにいて、コンピューターの電源を切ってから家に帰ることもあります。その場合、JRebel/WebLogic はどうなりますか? そして家に帰ります。その場合、JRebel/WebLogic はどうなりますか? そして家に帰ります。その場合、JRebel/WebLogic はどうなりますか?

さまざまな Maven プロジェクトで変更されたファイルのみを確認し、それらをサーバー上の適切な場所に FTP 送信して、JRebel が完全にサーバー側で実行できるようにする方がはるかに優れているように思えます。誰かがこれを行う良い方法を持っていますか? または、誰かが JRebel をまったく含まないソリューションを持っているかもしれません。話しましょう。

4

3 に答える 3

1

JRebel をリモート展開にも使用できるようになりました。セットアップは非常に簡単で、特別なネットワーク構成やリモート マシンのポートを開く必要はありません。

http://zeroturnaround.com/jrebel/remoting

IDE プラグインに大きく依存していますが、ローカル マシンで開発しているかのような体験が得られます

于 2012-05-05T18:19:22.517 に答える
0

あなたがすべきことは、各開発者にWebLogicの独自のローカルインスタンスを実行させることです。

WebLogicにはかなりのメモリ使用量がありますが、VPNを介してデプロイメントを実行する必要があることは、命題を失うことになります。これが機能する唯一の方法は、LiveRebelを使用することです。しかし、繰り返しになりますが、特に低速の接続では、ネットワーク伝送に対して大きなペナルティが発生します。

ほとんどの場合、JDeveloper WLSでアプリを実行し、WebLogicの巨大な共有インスタンスを削除する方がよいでしょう。

于 2011-03-08T22:51:59.680 に答える