Liferay-在2个不同的portlet之间共享UTIL类
我正在开发一个Liferay应用程序,由两个不同的portlet组成,它们都必须共同进行某些操作,因此我决定将这些操作放在外部Utils类的静态方法中 我必须将该类外部化,以避免在两个Portlet中重复相同的代码,并且我希望Portlet位于不同的WAR文件中 我知道我可以将Utils类打包到一个JAR文件中,但我们仍在开发中,我们不想重新生成JAR并为每次更改重新启动TomcatLiferay-在2个不同的portlet之间共享UTIL类,liferay,share,portlet,Liferay,Share,Portlet,我正在开发一个Liferay应用程序,由两个不同的portlet组成,它们都必须共同进行某些操作,因此我决定将这些操作放在外部Utils类的静态方法中 我必须将该类外部化,以避免在两个Portlet中重复相同的代码,并且我希望Portlet位于不同的WAR文件中 我知道我可以将Utils类打包到一个JAR文件中,但我们仍在开发中,我们不想重新生成JAR并为每次更改重新启动Tomcat 哪一个是最好的选择,我如何执行它?如果您使用的是Liferay SDK,您可以使用客户端(最近更改为共享)目录来
哪一个是最好的选择,我如何执行它?如果您使用的是Liferay SDK,您可以使用
客户端
(最近更改为共享
)目录来放置您的通用代码
一个很好的例子是如何与结合使用
从外观上看,您需要做的所有配置就是修改将使用client\shared类的build.xml
文件。如果查看DeployListenerHook的定义,您可以看到需要添加的只是
对于新SDK:
对于较旧的SDK:
希望这有帮助 还有另一种方法涉及构建JAR文件,但不需要重新启动服务器(至少在Tomcat上) 为JAR文件编写一个构建脚本,以便它编译、构建JAR并最终将其复制到以下位置:
{tomcat}/webapps/ROOT/WEB-INF/lib
- 然后在portlet中打开“liferay plugin package.properties”(在liferay Developer Studio/liferay IDE中,应该使用一个漂亮的GUI打开)
- 然后将JAR的名称添加到此文件中的“门户依赖项JAR”列表中,以便在源代码中使用它(或者只需点击GUI中的“添加”按钮并选择所需的JAR): 门户依赖项jars=my-custom-lib.jar,my-other-custom-lib.jar
- 保存文件,并重新部署portlet,部署portlet时将复制JAR
我已经将此方法用于定制jar和我需要在Portlet中使用的第三方jar。对于开发阶段,只需将jar文件与这两个应用程序打包 除非一个应用程序以某种方式依赖于另一个,否则它是完全正常的
另一个解决方案是使用JRebel工具。它将允许您在tomcat中重新部署jar,而无需重新启动。而且您可能在一个.war中有多个portlet。您可以在
portlet.xml
中定义它们,我如何使用Liferay IDE创建客户机或共享项目?你能给我举个例子吗?谢谢,我没有使用Liferay IDE。我已经浏览了文档,但似乎IDE不支持它。