-1

私はこれまで Java サーバーの開発に携わったことがなく、約 10 個のライブラリを含む大規模なサーバー プロジェクトを構築する必要があります。

このプロジェクトでは、ビルドに既に Maven を使用しています。構築プロセスをセットアップしました。今は開発部分に来ています。(コードの一部を変更する必要があります)

質問
私は 5 秒から 10 秒で構築することに慣れています (プロジェクト全体を再構築する必要はありません)。どうすればmavenでそれを達成できますか?
ユースケース: コード行を記述してテストします。

Mavenでそれを行う方法がない場合、他の方法で行うことはできますか? そうしないと、コードをテストする必要があるたびに 3 ~ 5 分待つのは大変なことです。

編集:
100 以上のリンクされたライブラリ (jar) がありますが、依存関係のあるワークスペースには約 10 のプロジェクトがあります。mvn install には約 5 分以上かかります。プロジェクトには数千の .java ファイルと大量のリソースがあります

4

6 に答える 6

1

JRebelのようなホット デプロイメント用のツールは、サーバーを再起動せずに実行できます。それ以外の場合は、再起動する必要がありますが、10 個のライブラリには問題ないと思います。

私は通常 7 または 8 で作業します。デプロイはEclipse+m2e-wtpで自動的に管理されるため、サーバーが再起動するまで待つだけで済みます。プロジェクトが複数のモジュールに分割されている場合、このプラグインは、必要なものだけをコンパイルしてデプロイすることを処理します。

于 2013-07-11T15:17:17.043 に答える
1

最も効果的な方法は、ローカルで Maven に依存するのではなく、代わりに継続的インテグレーション サーバーでカバーすることです。変更 (または実装) するコード行に対して 1 つのテストのみを実行します。Maven の代わりに IDE ビルドを使用します。

次に、コミットごとに Jenkins ビルドを自動的にトリガーするリポジトリにコミットします。ビルドとテストのすべての時間 (完全なテスト スイートの場合) は、継続的インテグレーション サーバーで消費されますが、次の機能は既に実装できます。テストが成功した後でのみ、統合サーバーは変更を祝福されたリポジトリにプッシュします。

インターネット上には、Jenkins、Maven、Git を使用してこのワークフローをカバーする方法に関するチュートリアルがたくさんあります。

于 2013-07-11T19:36:43.190 に答える
0

私は、Eclipse 用の JBoss プラグイン、Eclipse 用の Maven プラグイン、および Maven で自動展開をセットアップした Eclipse を使用した Web 開発に取り組んでいます。私の全体的な展開時間は約 1 分です。さらに削減したい場合は、ホットデプロイメントを探してください。

このEclipse + Tomcat - ワークスペースから直接 webapp を提供するを確認してください

私の観察では、1 つのファイルで数行を変更すると、maven はそのファイルのみをコンパイルしますが、maven ビルド プロセスを開始する必要があります。

ライブラリの数は問題にならないと思います。一度だけダウンロードされ、.m2 フォルダーに保存されます。私の場合、毎朝または最初のビルドでダウンロードされ、最小限のダウンロードしかありません。私は10以上の図書館で働いてきました。

開発環境のセットアップ (ツールのインストール、構成を意味します) が 1 回で済み、その後はスムーズに進みます。

于 2013-07-11T15:14:08.250 に答える
0

If your project is divided into modules with a parent-child relationship, you can have maven build just a subset of the children. See the answers to this other SO question: How to maven build child projects?

于 2013-07-11T15:36:39.303 に答える
0

J2EE ワールドへようこそ。私はいくつかのハックっぽい回避策を提案できますが、完全なガイドとは見なさないでください。

  1. まず第一に、hdd の速度は非常に重要です。ssd を手に入れることができれば、それは素晴らしいことです。

  2. FS/OS が重要です。私にとっては、同じハードウェアで、ubuntu + ext4 ビルドは windows + ntfs よりも 30 ~ 40% 高速です

  3. オフライン モードでの作業 (外部依存関係の更新をチェックしない) などのハック、アクティブな開発中にテストを無効にすることは、作業をスピードアップするのに役立つかもしれませんが、足を撃つ可能性もあります。

  4. 1 つのモジュールで 1 つの特定の機能に取り組んでいる場合、そのモジュールのみをビルドしてから、ear モジュールをビルドしてデプロイできます。

  5. あなたのアイデアの可能性を最大限に活用してください。ホットスワップを使用します。展開されたアーティファクトを展開するようにしてください。この方法では、maven や jars/wars/ears を作成する必要さえありません。IntelliJ IDEA は、ここで私の個人的なお気に入りです。Eclipseも同様にうまくいくかもしれません。

  6. ウイルス対策を無効にします (作成したすべてのクラス ファイルをチェックするのが好きな人もいます)。あなたが企業環境にいる場合は、エクソシストに依頼してください

于 2013-07-11T15:56:16.750 に答える