我们正在从Liferay 4.2升级到Liferay 5.2.2。我们正在使用EXT环境。以前,在4.2中有一个名为/ ext / portlets的目录。根据4.2 doc,
“从/ ext目录运行ant deploy目标时,放置在此目录中的Portlet将自动部署到应用程序服务器”
是否存在相应的5.2?
起初我虽然/ ext / modules可以解决问题,但看起来/ modules中的构建文件只是解开我的portlet war文件。这不足以部署portlet,因为Liferay需要在我的portlet的WEB-INF中扩充web.xml以插入servlet映射标记。
为了进行比较,4.2的/ ext / portlets目录下的构建文件将调用com.liferay.portal.tools.PortletDeployer并将我的war文件作为参数传递。
我环顾四周,PortletDeployer仍然存在于5.2代码库中。它现在位于com.liferay.portal.tools.deploy中,但不会从构建文件中调用它。 。我想知道这是否意味着在5.2 Liferay中不再有预先部署portlet的方法。 Liferay是否必须启动并运行才能在5.2中部署?
答案 0 :(得分:3)
如果您的portlet捆绑为战争,并且不需要在与Liferay相同的Web应用程序中运行,只需将您的战争放在liferay deploy dir中。此目录在portal-ext.properties文件中定义,并覆盖
的捆绑portal.properties文件定义auto.deploy.deploy.dir=${liferay.home}/deploy
在启动时,Liferay扫描此目录并安装任何找到的“插件”(portlet,主题,布局,钩子......)。 您可能对portlet和主题创建的plugins SDK感兴趣,因为它可以帮助您分离portlet开发和核心门户扩展。 您还应该注意主题,可能需要迁移才能符合4.3 onward themes。