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

时间:2015-02-22 14:27:20

标签: liferay maven-3 best-fit

我目前正致力于从6.06.2.2 GA3的liferay升级。我尝试升级服务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/下的services文件夹中生成的。

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

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

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

1 个答案:

答案 0 :(得分: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.

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

EDIT :::: 发现此链接很有用 https://www.liferay.com/community/forums/-/message_boards/message/51303796