如何将 liferay 服务从 6.0 原型升级到 6.2?

How to upgrade liferay services from 6.0 archetype to 6.2?

我目前正在将 liferay 从 6.0 升级到 6.2.2 GA3。我尝试升级服务 portlet。 6.0 版本的服务 portlet 是使用 mvn services-portlet-archetype 构建的,而 6.2 版本的原型是 liferay-servicebuilder-archetype。不同的是,在 6.2 liferay-servicebuilder-archetype 中有两个模块: Module 1: 是一个具有我们的代码逻辑的 portlet Module 2: 是服务 portlet,在 liferay:build-service 期间生成了 class 个文件。这些文件被归档到 jar 文件中,稍后在 portlet(模块 1)模块中用于创建 WAR 文件。

而在 6.0 中,没有模块的概念。在 liferay:build-service 期间生成的服务 class 文件是在 src/ 下的服务文件夹中生成的。

liferay-servicebuilder-archetype 仅适用于 Liferay 6.1+ 版本,如 mvnrepository 中所示。我对 6.1 版本需要这个新原型的猜测是:
1. 避免错误地将自动生成的服务文件提交到我们的版本控制仓库。
2. 更加模块化。

但是有了这个新的原型,我发现构建过程消耗了大量的 permgen space 和堆 space(每次我 运行 通过 jvisualvm 观察到 mvn clean package liferay:build-service)。我能够创建相同的 portlet services-portlet-archetype 成功部署并在 6.2 GA3 服务器上工作(没有额外的 permgen space 和堆 space)。但是在构建过程中没有发现任何内存问题。

我的问题是:
1.这两个原型(liferay-servicebuilder-archetypeservices-portlet-archetype)中的哪一个是liferay 6.2 GA3的好实践。
2. 下一步,如果我需要升级我在项目中使用的所有 20 多个 portlet,我是否需要从原型创建? (需要很多时间和精力)。
3. 如果使用 liferay-servicebuilder-archetype 是最佳实践,如何解决这个额外内存消耗的问题。目标文件夹似乎比 services-portlet-archetype 目标文件夹产生更多 class 个文件。
4. 需要这个新原型是为了上面提到的两个好处(我猜的)还是有别的?

在等待这个问题的答案 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.

如果有更有说服力的答案,我会选为最佳答案。

编辑:::: 发现这个 link 有用 https://www.liferay.com/community/forums/-/message_boards/message/51303796