4

私は2つの異なるポートレットで構成されるLiferayアプリケーションを開発していますが、どちらも特定の操作を共通にする必要があるため、その操作を外部Utilsクラスの静的メソッドに入れることにしました。

両方のポートレットで同じコードが重複しないように、そのクラスを外部化する必要があります。また、異なるWARファイルにポートレットを配置したいと考えています。

UtilsクラスをJARファイルにパッケージ化できることはわかっていますが、まだ開発中であり、変更のたびにJARを再生成してTomcatを再起動したくありません。

どちらが最良のオプションであり、どのように実行できますか?

4

4 に答える 4

4

Liferay SDKを使用している場合は、clients(最近変更されたshared)ディレクトリを使用して共通コードを配置できます。

良い例は、deploy-listener-sharedをdeploy-listener-hookと組み合わせて使用​​する方法です。

見た目からすると、必要な構成はbuild.xml、client\sharedクラスを使用するファイルを変更することだけです。deploy-listener-hookのビルドファイルを見ると、追加する必要があるのはです。

新しいSDKの場合:

<property name="import.shared" value="my-utils-shared" />

古いSDKの場合:

<property name="dependent.clients" value="my-utils-client" />

お役に立てれば!

于 2012-10-24T23:26:42.880 に答える
2

JARファイルの作成を伴う別の方法がありますが、サーバーを再起動する必要はありません(少なくともTomcatでは)。

JARファイルのビルドスクリプトを記述して、JARをコンパイル、ビルドし、最後に次の場所にコピーします。

{tomcat}/webapps/ROOT/WEB-INF/lib
  • 次に、ポートレットで「liferay-plugin-package.properties」を開きます(Liferay Developer Studio / Liferay IDEでは、これは素晴らしいGUIで開くはずです)。
  • 次に、JARの名前をこのファイルの「portal-dependency-jars」リストに追加して、ソースで希望するようにします(または、GUIの[追加]ボタンを押して、必要なJARを選択します)。

    portal-dependency-jars = my-custom-lib.jar、my-other-custom-lib.jar

  • ファイルを保存し、ポートレットを再デプロイすると、ポートレットがデプロイされたときにJARがコピーされます。

このメソッドは、カスタムJAR、および自分のポートレットで使用する必要のあるサードパーティのJARに使用しました。

于 2012-10-26T07:18:09.453 に答える
0

また、1つの.warに複数のポートレットがある場合もあります。両方をで定義するだけですportlet.xml

于 2013-02-04T12:01:22.683 に答える
0

開発フェーズでは、jarファイルを両方のアプリケーションにパッケージ化するだけです。

一方のアプリケーションが他方に依存しない限り、それは完全に問題ありません。

別の解決策は、JRebelツールを使用することです。再起動せずに、Tomcatにjarを再デプロイできます。

于 2012-10-27T10:46:05.660 に答える