18

Maven から問題なくビルドできるかなり複雑な Java EE プロジェクトがあります。これを IDEA にインポートした後、フロントエンド WAR とバックエンド EAR をローカルの Weblogic 12c サーバーにデプロイする作業をセットアップしました。プロジェクトには、jar としてパッケージ化され、フロントエンドとバックエンドの両方のアーティファクトで使用されるいくつかの「共通」アーティファクトもあります。デプロイでは、展開されたアーティファクトを使用して、パッケージ化/アンパックの時間を節約しました。その時点まではすべて正常に機能します。

開発中に、いくつかの Java ソースを編集し、更新されたアーティファクトを実行中の Weblogic に再デプロイしようとします。Shift+F10 を押して、アーティファクトの再デプロイを選択すると、IDEA がプロジェクトをビルドしていることがわかり、プロジェクトがサーバーに再デプロイされますが、ほとんどの場合、最近の変更は表示されません。プロジェクトの再構築を明示的に選択し、後でアーティファクトを再デプロイしようとしても、サーバーに変更は見られません。デプロイされたアーティファクトに変更を反映させる唯一の安全な方法は、コマンド ラインから maven を呼び出してpackageゴールを呼び出し、IDEA から再デプロイすることです。(JRebel はインストールされておらず、IDE または Weblogic で使用されています。そのままにしておきたいです)。

それはIDEAから期待される動作ですか?これは私たちのプロジェクトに固有のものでしょうか、それともグローバルなものでしょうか? IDEA は、どのプロジェクトを再構築および再パッケージ化する必要があるかを検出し、EAR/WAR アーティファクトをサーバーに適切に再デプロイできるようにする必要がありますか? その目標を達成するために私の側から何か助けが必要ですか?

4

3 に答える 3

1

あなたの実行/デバッグ構成は何ですか? まだそうでない場合は、これを確認してください。

クイック メニューで、構成の編集 > 実行/デバッグ構成ウィンドウ:

  • [サーバー] タブ:

    • 「更新」アクション時: サーバーを再起動します
    • 起動前: 「run maven clean」と「run maven install」を設定します
  • 展開タブ

    • ここにあなたの耳を挿入します。
于 2013-05-10T11:19:26.030 に答える
0

最終的な目標が、IntelliJ のビルドおよび展開オプションによってビルド プロセス全体を実行することである場合でも、最初に次のことを試みます。mvn コマンドラインで実行していたすべての maven ビルド コマンドとデプロイ設定は、IntelliJ の maven パネルに 3 つの構造で表示されます。

これがうまくいく場合、IntelliJ ビルドでビルドされたライブラリの 1 つが適切な場所に適切にデプロイされていないことは明らかです。jar、ear、または war のどれが 1 つの変更によって影響を受ける必要があるかを絞り込み、ファイルの日付が展開される場所で更新されているかどうかを確認する必要があります。

まとめとして、私のささやかな提案は、J2EE プロジェクトに maven または gradle intelliJ パネルを使用することです。IntelliJ のアイデアを使用してプロジェクトを完全に構築するという定義された目標を達成するためです。また、Maven に追加するプラグインはすべて、アイデアの maven/gradle パネルに表示されます。これはかなり単純なアプローチであり、必要に応じて IntelliJ 内で強力かつ柔軟な展開とビルド ツールを実現できます。

于 2013-06-27T21:53:12.190 に答える