您的位置:首页 > Web前端

使用Maven创建liferay应用时候注意archetype的版本

2012-06-15 12:44 671 查看
我们用Maven创建liferay应用(比如portlet,theme)时,常常有个版本选择,如图:





默认的“Show the last version of Archetype only” 是被选中的,这时候我们只能显示最新版本的archetype,如果我们用最新版本的archetype开发应用,则最终当应用部署到低版本的容器中(比如我们目标的liferay server版本是6.1.0),就会出以下的错误:

Copying portlets for /app/Liferay/RI/liferay-portal-6.1.0-ce-ga1/deploy/paas_integration_portlet.war
03:11:17,971 ERROR [AutoDeployDir:197] com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: paas_integration_portlet.war does not support this version of Liferay
com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: paas_integration_portlet.war does not support this version of Liferay





错误分析:

显然,错误提示是低版本(6.1.0)的liferay 容器的PortletAutoDeployListener当探测到${liferay.home}/deploy 目录中有我们maven 部署上去的portlet应用时,因为看到portlet应用版本高于liferay容器自己的处理能力,所以无法处理。

验证猜想:

我们查看portlet应用的WEB-INF/liferay-plugin-package.xml文件,果然发现,应用的版本太高(6.1.0)





解决这个部署这个portlet到容器的方法:

当我们把portlet的版本号改到低于(或者等于)liferay容器的版本号时(也就是吧这个<liferay-version>元素从6.1.10改为6.1.0),问题就解决了。

更通用的解决方法:

为了防止以后的错误发生,在我们用maven向导创建portlet时,请关闭Show the last version of Archetype only 选项,这样我们的应用版本就可以选择了,我们选择低于目标服务器版本号的版本,就不会出类似错误了。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  archetype 版本
相关文章推荐