1

我目前正在将 Liferay 从升级6.06.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:是 services-portlet,它具有在liferay:build-service. 这些文件被归档到 jar 文件中,该文件稍后在 portlet(模块 1)模块中用于创建 WAR 文件。

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

liferay-servicebuilder-archetype仅在mvnrepositoryLiferay 6.1中看到的 + 版本中可用。我对 6.1 版本需要这个新原型的猜测是: 1. 为了避免错误地将自动生成的服务文件提交到我们的版本控制存储库。 2. 更加模块化。


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

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

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 回答