22

私は Liferay ポートレットを開発していますが、Maven が .war ファイルを作成し、その .war を LifeRay の auto-deploy ディレクトリにコピーして、LifeRay がデプロイを完了するまで (再び) 待つのを待つのは我慢できません。そのため、Tomcat (LifeRay にバンドルされています) をビルドして起動し、Intellij IDEA を介してホット デプロイを有効にしてポートレットをデプロイします。

IntelliJ (Liferay Wiki から) から Liferayを実行してみましたが、動作しません。

次の質問も試しましたが、結果はありませんでした。

環境:

  • Liferay CE 6.1.1 (Tomcat バンドル)。
  • archetype: liferay-portlet-archetypeを使用する Maven プロジェクト。
  • Intellij IDEA 12.1.2。
  • JDK6.

誰もそれを行う方法を知っていますか?

4

1 に答える 1

1

サーバーに .war ファイルをデプロイする (Liferay + Tomcat バンドル) --> .war ファイルを liferay デプロイ ディレクトリにドロップすることについて説明しますが、これは自動デプロイではありません。

技術的には、これはアプリケーション サーバーの によって処理されるため自動展開AutoDeploy Scannerですが、おそらく自動展開またはホット展開の意味とは異なります。

Liferay と Maven を使用して効率的にポートレットをプログラミングするには? --> Intellij IDEA を構成したいのですが、別の IDE を使用したくありません。私はJRebelで試しませんでした。

IDEA は揺るぎません。変更しないでください。ただし、私は個人的には使用していませんがJRebel、それを使用している同僚から多くの肯定的な反応を聞いています.. このオプションを破棄しないください.

さて、答えっぽい部分について:これは正確な解決策というよりもヒントかもしれませんが、私はこれを長い間使用してきました. ビルドが必要なモジュール全体を再デプロイしたくない場合は、サーバーがリモート デバッグを許可するように構成されていれば、IDEA を使用してホット デプロイできます。

コードに変更を加えてテストしたい場合は、リモートでデバッグして変更したクラスをコンパイルするかのように、実行中のアプリケーション サーバーに接続するだけです。ホットデプロイが自動的に行われます。その後、デバッグを切断/終了して、変更を確認してください!

これは、クラスの構造を変更しすぎたり、メソッドの引数を変更したりした場合には機能しませんが、たとえばメソッド本体内の null ポインターを修正しようとする場合には非常に役立ちます。接続してコンパイルするだけです。

JRebel を使用したくない場合に少しでも役立つことを願っています。

ヒント: 自動展開方法 (フォルダー「展開」) を使用して展開を簡素化したい場合は、プロファイルを作成して、構築するモジュールのみを指定することで高速化できます。

メイン (最上位)pom.xmlには、 profile というタグがあります。指定されたモジュールを使用して、そこに新しいプロファイルを追加できます。例えば:

<profile>
<id>dev</id>
<modules>
    <module>your-module</module>                
    <module>ejbs-for-your-module</module>               
</modules>  
</profile>

その後、Maven でプロファイルを使用してプロジェクトをビルドできます。たとえば、「dev」プロファイルを使用する場合:

mvn クリーン インストール-Pdev

または、必要な手動タスクを実行する展開スクリプトを作成することもできます。開発者が、ターゲットをクリーンアップし、必要なものをビルドし、war をピックアップして deploy フォルダーにコピーする bash/batch スクリプトを作成することは非常に一般的です。

于 2014-02-06T07:34:24.003 に答える