22

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

我尝试从 IntelliJ(来自 Liferay Wiki)运行 Liferay,但无法使其工作。

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

环境:

  • Liferay CE 6.1.1(Tomcat 捆绑包)。
  • 使用原型的 Maven 项目:liferay-portlet-archetype
  • Intellij IDEA 12.1.2。
  • JDK 6。

有谁知道该怎么做?

4

1 回答 1

1

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

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

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

IDEA 摇滚,不要改变它。然而,即使我不JRebel亲自使用,我也从使用它的同事那里听到了很多积极的反应。不要放弃这个选项——你可能想看看这个教程或者这个

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

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

如果您过多地更改类的结构或更改方法的参数,这将不起作用,但是当您尝试修复例如方法体内的空指针时,它会很有帮助。只需连接和编译。

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

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

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

<profile>
<id>dev</id>
<modules>
    <module>your-module</module>                
    <module>ejbs-for-your-module</module>               
</modules>  
</profile>

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

mvn 干净安装-Pdev

或者,您可以编写一个部署脚本,为您完成必要的手动任务。开发人员编写 bash/batch 脚本来清理目标、构建必要的东西、挑选战争并将它们复制到部署文件夹是很常见的。

于 2014-02-06T07:34:24.003 回答