【问题标题】:Develop a common jar library for different liferay portlets为不同的 Liferay Portlet 开发一个通用的 jar 库
【发布时间】:2017-03-26 13:34:00
【问题描述】:

我需要一些对三个不同的 Liferay portlet 通用的实用程序类,所以我将在一个项目中开发它们,应该为我的 portlet 共享。

我正在使用带有 Liferay IDE 插件的 Eclipse,我的问题是我需要什么样的项目?

我的意思是它是一个简单的 Java 项目还是任何类型的 Liferay 项目?

【问题讨论】:

标签: jar liferay portlet


【解决方案1】:

有几种方法可以做到这一点:

  1. 创建一个简单的 Java 项目。将其打包为 JAR 文件。将 JAR 文件放在全局类路径中如果是 tomcat,全局类路径将是 ../tomcat-7.0.27/lib/ext/
  2. 创建一个简单的 Java 项目。将其打包为 JAR 文件。将 JAR 文件放在每个 portlet 的类路径中。
  3. 使用service-builder创建一个Liferay plugin-portlet,将实用程序类放在service包中,以便实用程序类进入[name-of-your-project]-service.jar。然后在每个 portlet 的 portletswhich would need these classes specify the propertyrequired-deployment-contexts=[name-of-your-project]inliferay-plugin-package.properties` 中。
  4. 使用 service-builder 创建一个 Liferay plugin-portlet,将实用程序类放在 service 包中,以便实用程序类进入 [name-of-your-project]-service.jar,然后将 [name-of-your-project]-service.jar 放在全局类路径中并删除它来自您的 portlet 项目的 WEB-INF/lib,这样它就不会发生冲突。

结论

  • 如果实用程序类中的代码不依赖于 Liferay API,请使用 1st-method。但这需要每次实用程序类发生更改时重新启动服务器。 Hooks 也可以使用 Utility 类,因为它位于全局类路径中
  • 如果实用程序类中的代码不依赖于 Liferay API,请使用 2nd-method。这不需要重新启动服务器。但是实用程序类中的任何更改都需要您构建和部署所有使用此 jar 的 plugin-portlet。
  • 第三种方法:这与第二种方法具有相同的限制或功能,只是您可以在实用程序类中使用 Liferay API 和您的自定义服务 API。
  • 第四种方法:这与第一种方法具有相同的限制或功能,只是您可以在实用程序类中使用 Liferay API 和您的自定义服务 API。

因此,我在这里列出了利弊,供您自行决定。我很想知道专家在liferay中是否有更多方法(并且更清洁)来做到这一点。

【讨论】:

  • @oggie0563 欢迎您。所以你能不能接受这个作为答案,这样也可以帮助其他人。谢谢
猜你喜欢
  • 2010-10-24
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多