热插入Liferay Maven portlet,从Intellij Idea到Liferay Tomcat捆绑销售

Nah*_*ios 21 tomcat portlet hotdeploy intellij-idea liferay

我正在开发一个Liferay portlet,我无法忍受等待Maven构建.war文件,然后将.war复制到LifeRay的自动部署目录,最后等待(再次)直到LifeRay完成部署.这就是为什么我要构建,启动Tomcat(与LifeRay捆绑在一起)并通过Intellij IDEA部署我的portlet,并启用热部署.

我尝试使用IntelliJ中的Running Liferay(来自Liferay Wiki),但无法使其工作.

我也试过以下问题,但没有结果:

环境:

  • Liferay CE 6.1.1(Tomcat包).
  • Maven项目使用archetype:liferay-portlet-archetype.
  • Intellij IDEA 12.1.2.
  • JDK 6.

有谁知道怎么做?

Dro*_*out 1

在服务器上部署 .war 文件 (Liferay+Tomcat Bundle) --> 讨论将 .war 文件放入 liferay 部署目录中,这不是自动部署。

从技术上讲,这是自动部署,因为它是由应用程序服务器处理的AutoDeploy Scanner,但这可能不是您所说的自动部署热部署

如何使用 Liferay 和 Maven 高效地编写 portlet?--> 我想配置Intellij IDEA,不想使用其他IDE。我没有尝试过 JRebel。

IDEA 很糟糕,不要改变它。然而,即使我JRebel个人不使用它,我也从正在使用它的同事那里听到了很多积极的反应。不要放弃这个选项 - 你可能想看看这个教程或者也许这个

现在是答案部分:这可能更多的是一个提示,而不是一个精确的解决方案,但我已经使用它很长时间了。如果您不想重新部署需要构建的整个模块,并且您的服务器配置为允许远程调试,则可以使用 IDEA 热部署它。

当您对代码进行一些更改并且想要测试它时,只需连接到正在运行的应用程序服务器,就好像您要远程调试它并编译您更改的类一样。它将自动进行热部署。然后断开/结束调试并检查您的更改!

如果您对类的结构更改太多,或者更改方法的参数,则这不起作用,但当您尝试修复方法体内的空指针时,它会很有帮助。只需连接并编译即可。

如果您不想使用 JRebel,希望它对您有所帮助。

提示:如果您想使用自动部署方法(文件夹“deploy”)简化部署,那么您可以通过创建配置文件仅指定要构建的模块来加快部署速度:

在您的主目录(顶级)中pom.xml有一个名为profile的标签。您可以在其中添加指定模块的新配置文件。例如:

<profile>
<id>dev</id>
<modules>
    <module>your-module</module>                
    <module>ejbs-for-your-module</module>               
</modules>  
</profile>
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用 Maven 的配置文件构建您的项目。例如,如果您想使用“dev”配置文件:

mvn 干净安装-Pdev

或者您可以编写一个部署脚本,它将为您执行必要的手动任务。开发人员编写 bash/批处理脚本来清理目标、构建必要的内容、获取战争并将其复制到部署文件夹是很常见的。