2013-04-29 23 views
18

Mavenからうまく構築できるかなり複雑なJava EEプロジェクトがあります。それをIDEAにインポートした後、フロントエンドWARとバックエンドEARをローカルのWeblogic 12cサーバに配備しました。プロジェクトには、ジャンパーとしてパッケージ化され、フロントエンドとバックエンドの両方の成果物によって使用されるいくつかの「共通」成果物もあります。デプロイメントのために、私は爆発したアーティファクトを使用して、パッケージ化/アンパックに時間を節約しました。Intellij IDEAのJava EE展開

開発中にいくつかのJavaソースを編集し、更新された成果物を実行中のWeblogicに再デプロイしようとしました。私はShift + F10を押して、成果物の再配備を選択します。IDEAがプロジェクトをビルドするのを参照します。プロジェクトがサーバーに再配備されます。また、多くの場合、最近の変更は表示されません。明示的にプロジェクトを再構築することを選択してから、成果物を再デプロイしようとしても、サーバー上で変更は見られません。デプロイされた成果物に自分の変更を反映させる唯一の安全な方法は、コマンドラインからpackageという目標を呼び出し、IDEAから再デプロイするmavenを呼び出すことです。 (JRebelはインストールされておらず、IDEまたはWeblogicで使用されていますので、そのまま使用したいと思います)。

IDEAから期待される動作ですか?これは私たちのプロジェクトや何かグローバルに特有のものでしょうか? IDEAは、どのプロジェクトを再構築して再パッケージする必要があるのか​​を発見してから、EAR/WAR成果物をサーバーに適切に再デプロイする必要がありますか?私の側からその目標を達成する助けが必要なのでしょうか?

+0

変更しているパーツにSNAPSHOTバージョンがありますか?あなたの耳/戦争はどのようにこれらの図書館にアクセスできますか?それはモジュールタグを使用するのか、それとも通常の依存関係のようにそれに依存するのでしょうか?私はこれらの詳細が答えるようにする必要があります。 –

+0

ルートプロジェクトとサブプロジェクトの両方がSNAPSHOTバージョンを使用しています。 WARモジュールとEARモジュールのすべての依存関係は通常の依存関係として含まれており、EJBモジュールの依存関係は使用されません。 –

答えて

1

実行/デバッグの設定は何ですか?これをチェックしてください。クイックメニューで

、編集設定]> [ファイル名を指定して実行/デバッグの設定ウィンドウ:

  • サーバー]タブ:再起動サーバの起動前

  • :設定 "

    • '更新' アクションで'maven clean'を実行し、 'install maven install'を実行してください。
  • デプロウメントタブ

    • あなたの耳をここに挿入します。
+0

あなたは私の質問でこの点を忘れる恐れがあります。目標は、1)サーバを再起動せずに導入を更新する、2)IDEA内で完全にmavenを明示的に呼び出さずに達成することです。 –

1

この特定のは、あなたの質問に答えるわからないが、私はあなたを提案することができますことは、あなたは達人で、コマンドラインから/またはIDEAからの展開を実行することができ のWebLogic Mavenプラグイン

を設定しようとすることですサポート。

  1. http://docs.oracle.com/cd/E21764_01/web.1111/e13702/maven_deployer.htm
  2. http://www.youtube.com/watch?v=hagaMr6UL6U
+0

他の回答への私のコメントは、「目標はIDEA内で完全に達成し、明示的にmavenを呼び出さないことです」と述べています。 –

0

Evenifあなたの最終的な目標は、私が最初に次のことをしようとするのIntelliJのビルドおよび展開オプションによって行わ全体に構築プロセスを行うことです。 プロジェクトが適切に設定されていた場合あなたはIntelliJ内のmaven pom.xmlをロードすることができます。 mvnコマンドラインで行っていたすべてのmavenビルドコマンドとデプロイメント設定は、IntelliJのmavenパネルに素晴らしい3つの構造で表示されます。

これがうまくいくと、IntelliJビルドでビルドされたライブラリの1つが適切な場所に適切に展開されていません。あなたは瓶、耳、または戦争のどれを1回変更するだけで影響を受けなければならないのかを絞り込み、配備する場所にファイルの日付が更新されているかどうかを確認する必要があります。

私の謙虚な満足感は、あなたのJ2EEプロジェクト用のパネルまたはパネルを使用することです。 IntelliJのアイデアを通してプロジェクトを完全に構築するという明確な目標を達成します。また、プラグインをあなたのMavenに追加しても、あなたのMaven/gradleパネルに表示されます。これはかなり単純なアプローチであり、強力で柔軟な展開を実現し、IntelliJ内で必要なツールを構築できます。

+0

問題は明らかに外部の依存関係を扱うのではなく、他のサブプロジェクトの依存関係を扱うことにあります。 mavenの使用を提案することは、私のIDEですべてのことを行うことができるという私の表明された目標とは全く反対です。もちろん、このプロジェクトにはmavenを使用し、CIサーバーなどで広範囲に使用しますが、それはまったく別の話です。 –

関連する問題