3

私の会社には約 30 ~ 40 人の開発者がおり、全員が同じ Web サイト開発プロジェクトに取り組んでいます。プロジェクトは多くのモジュールに分かれています。私の問題は、すべての開発者が独自の JBOSS を実行して Java コードを実行していることです。Ant を使用して、Ear ファイルを構築し、ローカル デスクトップで実行されている JBOSS に展開します。これには大量のメモリが必要であり、デスクトップの速度が低下します。JBOSS を別のサーバー マシンで実行でき、すべての開発者がこのマシンを使用してコードを同時に実行およびテストできる場合は不可能でしょうか? 皆さんが私の質問を理解してくれることを願っていますか?

前もって感謝します。

4

3 に答える 3

1

Jenkinsのような継続的インテグレーションサーバーをセットアップできます。Jenkinsを使用すると、さまざまな「プロジェクト」があります。各プロジェクトはコードをビルドし、JBossのインスタンスを実行します。

Jenkinsを使用すると、開発者ごとに異なるプロジェクトを作成でき(必要な場合)、開発者がコードをチェックインするたびにJenkinsが単体テストをコンパイルして実行するという追加のメリットを得ることができます。

于 2012-04-25T18:03:33.117 に答える
0

できますが、多くの開発者が一緒になると、扱いにくくなる可能性があります。

jboss の単一インスタンスを実行することは可能ですが、ホット デプロイ、作業の遅延、同じコードで異なる開発者が作業している場合の相互汚染、またはホット デプロイがないという問題が発生します。アプリが展開/変更された時間。テスト環境では、これはうまく機能しません。

もう 1 つの方法は、すべての開発者がテストを実行するために個別のインスタンスを実行することですが、これはお金とサーバー リソースの両方で非常にコストがかかる可能性があります。これらのさまざまな環境からの変更をマージしようとすると、悪夢も見られます。

良い組織が役立つかもしれません。開発、ステージング、本番の 3 つのレイヤーを実行します。開発は純粋に開発者のためのものです。バグの追跡とテストはステージングで処理されますが、本番環境はユーザーと顧客の評価用です (製品がまだ展開されていないと仮定します)。適切なリポジトリを使用して、ローカル マシンから開発への変更をコード化し、管理者が変更のグループをステージングにロールバックします。ローカル マシンのメモリの問題を実際に解決することはできませんが、エンタープライズ レベルのものをいくつか試してみようと思いました。

手っ取り早い解決策の 1 つは、各マシンに大量の RAM を配置することです。次に、サーバーのメモリ設定をより高く設定します。これにより、CPU の負荷が少し軽減され、あまりにも多くのホット デプロイによる恐ろしい permgen エラーが発生する回数が減ります。

于 2012-06-22T17:35:25.663 に答える
0

JBOSS アプリケーション サーバーを特定の IP で実行することでこれを実現できます。これを行うには、./run.sh -b の後に、アプリケーション サーバーを実行するマシンの IP アドレスを指定する必要があります。これで、サーバーの準備が整いました。すべてのクライアントは、その IP アドレスを使用してサーバーに接続する必要があります。このために、ループバック アドレス (127.0.0.1) を、アプリケーション サーバーが実行されている IP アドレスに置き換えます。

于 2012-05-17T04:49:46.910 に答える