1

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-archetypeservices-portlet-archetype

liferay-servicebuilder-archetypeservices-portlet-archetype

4

1 に答える 1

0

この質問への回答を 2 週間以上待った後、次の推測がこの質問に対する正しい回答であると想定しています。

The need for this new archetype from 6.1 version is: 
1. To avoid committing the auto generated services files by mistake to our version control repo.
2. To be more modular.

もっと説得力のある答えがあれば、それをベストアンサーに選びます。

編集:::: このリンクが役立つことがわかりました https://www.liferay.com/community/forums/-/message_boards/message/51303796

于 2015-03-08T13:56:59.440 に答える