6.0
現在、 からへの liferay のアップグレードに取り組んでい6.2.2 GA3
ます。サービスポートレットをアップグレードしてみました。6.0 バージョンのサービス ポートレットは、mvn services-portlet-archetype を使用して構築されますが、6.2 バージョンの場合、アーキタイプはliferay-servicebuilder-archetype
です。違いは、6.2 liferay-servicebuilder-archetype には 2 つのモジュールがあることです。
Module 1:
はコード ロジックを持つ
ポートレットです。Module 2:
は、 で生成されたクラス ファイルを持つサービス ポートレットですliferay:build-service
。これらのファイルは jar ファイルにアーカイブされ、後で WAR ファイルの作成のためにポートレット (モジュール 1) モジュール内で使用されます。
一方、6.0 では、モジュールの概念はありません。で生成されたサービス クラス ファイルは、 のliferay:build-service
下の services フォルダ内に生成されますsrc/
。
これは、 mvnrepositoryに見られる + バージョンliferay-servicebuilder-archetype
からのみ利用可能です。6.1 バージョンからのこの新しいアーキタイプの必要性についての私の推測は次のとおり
です。
2. よりモジュール化する。Liferay 6.1
しかし、この新しいアーキタイプを使用すると、ビルド プロセスが大量の permgen スペースとヒープ スペースを消費することがわかりました (jvisualvm で観察されるように、実行するたびにヒープと permgen スペースを 2 倍にする必要がありますmvn clean package liferay:build-service
)。6.2 GA3 サーバーで正常にデプロイされ、動作する同じポートレットを作成することができましたservices-portlet-archetype
(余分な permgen スペースとヒープスペースなしで)。ただし、ビルド中にメモリの問題は見つかりませんでした。
私の質問は次のとおり
です。
2. プロジェクトで使用している 20 以上のポートレットをすべてアップグレードする必要がある場合、アーキタイプから作成する必要がありますか? (多くの時間と労力がかかります)。3. 使用がベスト プラクティスである
場合に、この余分なメモリ消費の問題を修正する方法。ターゲット フォルダーは、ターゲット フォルダーよりも多くのクラス ファイルを生成するようです。
4. この新しいアーキタイプの必要性は、上記の 2 つの利点 (私が推測したこと) のためですか、それとも他に何かありますか?liferay-servicebuilder-archetype
services-portlet-archetype
liferay-servicebuilder-archetype
services-portlet-archetype