java - Liferay Portlet部署

标签 java liferay war liferay-6.2

下午好。

我正在研究从WebSphere到Liferay 6.2 CE的迁移。

到目前为止,我已经能够将主项目导出到WAR文件,并将其导入Liferay。

真正的问题来自开发环境。

对项目进行更改时,部署过程非常耗时。
有必要排除先前的portlet,并安装已编译的更改的新portlet。

是否有更简单的方法来部署项目,直接拥有Liferay Portlet?
例如,单击按钮或运行命令,然后将其立即部署到Liferay的服务器。

最好的祝福。

最佳答案

构建和部署自动化

Liferay 6.2 portlet开发支持Ant,Ivy和Maven构建自动化。我们的开发人员通常使用Liferay 6.2随附的标准的Ant构建脚本,并且我们使用Jenkins将我们的部署自动化到各种测试和生产服务器。

但是,即使使用上述工具,6.2中的构建也可能是乏味且非常耗时的。 DXP通过引入OSGi模块在大多数情况下消除了此问题,但是6.2中不支持这些OSGi模块。

虽然Liferay不能提供这种开箱即用的解决方案,但最重要的是有一个工具大大减少了6.2中的构建和部署时间

叛逆者

JRebel是Java EE开发的出色产品,在Liferay平台上特别有用和受支持。本质上,JRebel是一个工具,它使您可以保存对代码的更改并立即查看这些更改,而无需运行任何Ant目标或移动任何war文件。

JRebel不是免费产品(每个许可证每年收费500美元),但如果用于非商业项目,则可以获得免费副本(具有100%的功能)。要获得许可证,只需搜索“ My JRebel”并注册一个帐户。

JRebel for Liferay

JRebel非常容易与Liferay集成,并且Liferay博客上有一些有关配置的文档。但是,上次我检查博客文章时,概述了不再支持(或至少没有首选)的较旧的配置方式。因此,我将简要介绍使用Liferay配置JRebel所需的步骤。

组态


  通过My JRebel获得免费许可证或购买了许可证密钥(如果这是商业项目)后,请执行以下步骤。如果您在公司中使用此工具,则肯定要使用他们的许可证服务器。



打开您的Liferay Development Studio(或安装了Liferay插件的Eclipse IDE),然后转到“帮助”>“ Eclipse市场”。
在Eclipse Marketplace窗口加载后,搜索JRebel并完成下载和安装过程。
安装过程完成(并且IDE重新启动)后,转到“帮助”>“ JRebel”>“激活”。
您将拥有一个包含三个选项的窗口(激活码,许可证密钥,许可证服务器)。如果您使用的是My JRebel,则可能会有一个.lic文件。您将要选择该选项并在系统上找到文件。如果您在企业环境中使用此服务器,我强烈建议您使用许可证服务器。如果没有包括其他地方概述的说明,并且完全不是Liferay所特有的。
激活JRebel后,您现在应该在右上角看到JRebel配置透视图


enter image description here


单击透视图,导航到“启动”选项卡,然后选择以下配置


enter image description here


然后导航到项目选项卡,然后选择要应用JRebel的所有portlet。除非您正在运行某种类型的容器环境(未指定),否则请仅选择第一个框。


enter image description here


然后在Eclipse菜单中选择“项目”>“自动构建”


测试您的配置

有一些迹象表明您的配置正在运行。首先,在您的项目源文件夹中,您应该看到一个rebel.xml配置文件。



enter image description here



如果您看到该文件,则该启动服务器了。启动服务器后,您将立即在catalina日志文件顶部写入一些新行。



enter image description here



另外,在Tomcat的temp文件夹中,您应该看到一个新的JRebel目录。



enter image description here



门户网站加载后,更改其中一个Java文件。在Catalina控制台中,您应该看到新打印的行,其中包含刚修改的类的完全限定名称。检查您的更改是否生效!

问题

如果您在此过程的任何部分都遇到问题,则可能需要注意一些事项。如果收到任何permgen错误,则可能需要在服务器配置面板中修改与内存相关的JVM标志。此外,在同一位置,您可能需要切换自动发布设置。另外,我总是遇到JRebel无法解决服务生成器生成的ORM文件中的方法签名问题。如果我要向这些类添加新方法,则JRebel不会选择它。如果我要在那些类的方法之一中添加或修改参数的类型,JRebel不会选择它。在所有其他方面,对localserviceimpl和serviceimpls中的代码进行更改似乎都不错,并且其他所有类都可以与JRebel一起正常工作。 ZeroTurnAround的工程师发誓它可以与Service Builder完美配合,但是在上述情况下我没有取得成功。

关于java - Liferay Portlet部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47098484/

相关文章:

java - 在java中设置文件的附加信息

java - 如何在 JSP 页面中检索并显示数据库中的图像?

eclipse - Liferay:使用 Liferay IDE 和自己的项目文件夹组织修复 eclipse 中的错误

java - Maven:在运行时使用测试 jar 时缺少依赖项

Ant 脚本: Prevent duplication of JAR in javac-classpath war-lib

java - 如何通过单击 JButton 清除 JTextField

java - 如何在 Java 中删除重复的列表遍历

javascript - 如何替换javascript中多次出现的字符串?

java - Liferay:未找到合适的驱动程序

java - 如果不是独立构建,Maven war 包含额外的依赖项