我正在开发一个Liferay portlet,我无法忍受等待Maven构建.war文件,然后将.war复制到LifeRay的自动部署目录,最后等待(再次)直到LifeRay完成部署。这就是为什么我要构建,启动Tomcat(与LifeRay捆绑在一起)并通过Intellij IDEA部署我的portlet,并启用热部署。
我尝试使用Running Liferay from IntelliJ(来自Liferay Wiki),但无法让它发挥作用。
我也尝试过以下问题但没有结果:
环境:
有谁知道怎么做?
答案 0 :(得分:1)
在服务器上部署.war文件(Liferay + Tomcat Bundle) - >谈论将.war文件丢弃到liferay部署目录并且不是自动部署。
从技术上讲,这是自动部署,因为它由应用服务器的AutoDeploy Scanner
处理,但可能不是自动部署或热部署的含义。
IDEA摇滚,不要改变它。但是,即使我不亲自使用如何使用Liferay和Maven有效地编写portlet? - >我想配置Intellij IDEA,不想使用其他IDE。我没试过JRebel。
JRebel
,我也听到了使用它的同事的许多积极反应。不要放弃这个选项 - 你可能想看看this tutorial或者this one。
现在回答这个问题:这可能更像是一个小费,而不是一个确切的解决方案,但我已经使用了很长时间了。如果您不想重新部署需要构建的整个模块,则可以使用IDEA对其进行热部署,如果您将服务器配置为允许remote debugging。
当您对代码进行一些更改并且想要测试它时,只需连接到正在运行的应用程序服务器,就像您要远程调试它并编译您更改的类一样。它会自动进行热部署。然后断开/结束调试并检查您的更改!
如果您更改类的结构太多,或者更改方法的参数,这不起作用,但是当您尝试修复方法体内的空指针时,这是一个很好的帮助。只需连接并编译。
如果你不想使用JRebel,希望它对你有所帮助。
提示:如果您想使用自动部署方法(文件夹“deploy”)简化您的部署,那么您可以通过创建配置文件,仅指定您要构建的模块来加快它的速度:
在您的主要(顶级)pom.xml
中,有一个名为个人资料的标记。您可以在其中添加指定模块的新配置文件。例如:
<profile>
<id>dev</id>
<modules>
<module>your-module</module>
<module>ejbs-for-your-module</module>
</modules>
</profile>
之后,您可以使用Maven的配置文件构建项目。例如,如果您想使用“dev”配置文件:
mvn clean install -Pdev
或者您可以编写一个部署脚本,它将为您执行必要的手动任务。开发人员编写bash / batch脚本来清理目标,构建必要的东西,拿起战争并将它们复制到deploy文件夹是很常见的。