Как обновить сервисы liferay с 6.0 архетипа до 6.2?
В настоящее время я работаю над обновлением Liferay от 6.0
в 6.2.2 GA3
, Я попытался обновить портлет служб. Портлет служб версии 6.0 построен с использованием mvn services-portlet-archetype, тогда как для версии 6.2 архетип имеет вид liferay-servicebuilder-archetype
, Разница в том, что в 6.2 liferay-servicebuilder-archetype есть два модуля: Module 1:
это портлет, который имеет нашу логику кодаModule 2:
это сервис-портлет, который имеет файлы классов, сгенерированные во время liferay:build-service
, Эти файлы архивируются в файл jar, который позже используется внутри модуля портлета (Модуль 1) для создания файла WAR.
В то время как в 6.0 нет понятия модулей. Файлы классов услуг, созданные во время liferay:build-service
создаются в папке служб под src/
,
это liferay-servicebuilder-archetype
доступно только с Liferay 6.1
+ версии, как видно в mvnrepository. Мои предположения о необходимости этого нового архетипа от версии 6.1:
1. Чтобы избежать фиксации автоматически сгенерированных сервисных файлов по ошибке в нашем репозитории с контролем версий.
2. Быть более модульным.
Но с этим новым архетипом я обнаружил, что процесс сборки занимает много пространства permgen и пространства кучи (мне нужно удваивать пространство heap и permgen каждый раз, когда я запускаю mvn clean package liferay:build-service
как наблюдается через jvisualvm). Я смог создать тот же портлет с services-portlet-archetype
успешно развернут и работает на сервере 6.2 GA3 (без дополнительного пространства permgen и пространства кучи). Но не обнаружил никаких проблем с памятью при его сборке.
Мои вопросы:
1. Какой из этих двух архетипов (liferay-servicebuilder-archetype
или же services-portlet-archetype
) является хорошей практикой для LifeRay 6.2 GA3.
2. В дальнейшем, если мне нужно обновить все 20+ портлетов, которые я использую в своем проекте, мне нужно создавать из архетипа? (Отнимает много времени и сил).
3. Как решить эту проблему дополнительного потребления памяти при использовании liferay-servicebuilder-archetype
это лучшая практика Целевая папка производит больше файлов классов, чем в services-portlet-archetype
целевая папка.
4. Необходимость этого нового архетипа заключается в двух вышеупомянутых преимуществах (о которых я догадывался) или есть что-то еще?
1 ответ
После ожидания более 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