0

我们正在从 Liferay 4.2 升级到 Liferay 5.2.2。我们正在使用 EXT 环境。以前,在 4.2 中有一个名为 /ext/portlets 的目录。根据 4.2 文档,

“从 /ext 目录运行 ant deploy 目标时,放置在此目录中的 Portlet 将自动部署到应用程序服务器”

有5.2的等价物吗?

起初我认为 /ext/modules 可以解决问题,但看起来 /modules 中的构建文件只是取消了我的 portlet 战争文件。这不足以部署 portlet,因为 Liferay 需要在我的 portlet 的 WEB-INF 中增加 web.xml 以插入 servlet 映射标签。

只是为了比较,/ext/portlets 目录中的 4.2 构建文件会调用 com.liferay.portal.tools.PortletDeployer 并将我的 war 文件作为参数传递。

我环顾四周,PortletDeployer 仍然存在于 5. 2 代码库中。它现在位于 com.liferay.portal.tools.deploy 中,但不会从构建文件的任何位置调用它。. 我想知道这是否意味着在 5.2 Liferay 中不再有预部署 portlet 的方法。Liferay 是否必须启动并运行才能在 5.2 中部署?

4

1 回答 1

3

如果您的portlet 被捆绑为war,并且不需要在与Liferay 相同的web 应用程序中运行,只需将您的wars 放在liferay 部署目录中。此目录在您的 portal-ext.properties 文件中定义,并覆盖捆绑的 portal.properties 文件定义

auto.deploy.deploy.dir=${liferay.home}/deploy

在启动时,Liferay 会扫描该目录并安装任何找到的“插件”(portlet、主题、布局、挂钩...)。您可能对用于 portlet 和主题创建的插件 SDK感兴趣,因为它可以帮助您分离 portlet 开发和核心门户扩展。您还应该小心您的主题,它可能需要迁移以符合4.3 以后的主题

于 2009-06-16T15:58:54.833 回答