8

3 つの異なる Liferay ポートレットに共通するいくつかのユーティリティ クラスが必要なので、ポートレットで共有する必要がある 1 つのプロジェクトでそれらを開発します。

Liferay IDE プラグインで Eclipse を使用していますが、私の質問は、必要なプロジェクトはどのようなものですか?

単純な Java プロジェクトですか、それとも何らかの Liferay プロジェクトですか?

4

1 に答える 1

15

これを行う方法はいくつかあります。

  1. 単純なJavaプロジェクトを作成します。JARファイルとしてパッケージ化します。JARファイルをグローバルクラスパスに配置します。tomcatの場合、グローバルクラスパスはになります../tomcat-7.0.27/lib/ext/
  2. 単純なJavaプロジェクトを作成します。JARファイルとしてパッケージ化します。JARファイルをすべてのポートレットのクラスパスに配置します。
  3. service-builderを使用してLiferayプラグインポートレットを作成し、ユーティリティクラスをserviceパッケージに入れて、ユーティリティクラスがに入るようにし[name-of-your-project]-service.jarます。次に、各ポートレットのwhich would need these classes specify the propertyrequired-deployment-contexts =[name-of-your-project] inliferay-plugin-package.properties`のポートレットで。
  4. service-builderを使用してLiferayプラグインポートレットを作成し、ユーティリティクラスをserviceパッケージに入れて、ユーティリティクラスを[name-of-your-project]-service.jarに入れて[name-of-your-project]-service.jarから、をグローバルクラスパスに入れてWEB-INF/lib、ポートレットプロジェクトから削除してください。対立。

結論

  • ユーティリティクラスのコードがLiferayAPIに依存しない場合は、1番目のメソッドを使用します。ただし、これには、ユーティリティクラスに変更があるたびにサーバーを再起動する必要があります。Hooksまた、ユーティリティクラスは、グローバルクラスパスにあるため、によって使用できます。
  • ユーティリティクラスのコードがLiferayAPIに依存しない場合は、2番目の方法を使用します。これには、サーバーの再起動は必要ありません。ただし、ユーティリティクラスを変更するには、このjarを使用するすべてのプラグインポートレットをビルドしてデプロイする必要があります。
  • 3番目の方法:これには2番目の方法と同じ制限または機能がありますが、ユーティリティクラスでLiferayAPIとカスタムサービスAPIを使用できます。
  • 4番目の方法:これには1番目の方法と同じ制限または機能がありますが、ユーティリティクラスでLiferayAPIとカスタムサービスAPIを使用できます。

だからここに私はあなたがあなた自身のために決めるための賛否両論をリストしました。専門家からのliferayでこれを行うためのより多くの方法(そしてはるかにクリーンな方法)があるかどうか知りたいです。

于 2013-01-18T07:53:28.620 に答える