jar - 为不同的liferay portlet开发一个通用的jar库

标签 jar liferay portlet

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

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

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

最佳答案

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

  • 创建一个简单的 Java 项目。将其打包为 JAR 文件。将 JAR 文件放在全局类路径中 对于 tomcat,全局类路径将为 ../tomcat-7.0.27/lib/ext/ .
  • 创建一个简单的 Java 项目。将其打包为 JAR 文件。将 JAR 文件放在每个 portlet 的类路径中。
  • 使用 service-builder 创建 Liferay plugin-portlet,将实用程序类放入 service打包以便实用程序类进入 [name-of-your-project]-service.jar .然后在 portlet 中 which would need these classes specify the property required-deployment-contexts=[您的项目名称] in每个 portlet 的 liferay-plugin-package.properties`。
  • 使用 service-builder 创建 Liferay plugin-portlet,将实用程序类放入 service打包以便实用程序类进入 [name-of-your-project]-service.jar然后把 [name-of-your-project]-service.jar在全局类路径中并将其从 WEB-INF/lib 中删除的 portlet 项目,这样它就不会发生冲突。

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

  • 所以在这里我列出了利弊供你自己决定。我很想知道专家是否有更多的方法(并且更清洁)在 Liferay 中做到这一点。

    关于jar - 为不同的liferay portlet开发一个通用的jar库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393049/

    相关文章:

    liferay - 我应该从 Liferay 6.1 迁移到 Liferay 6.2 吗?

    java - 如何在 Liferay portal 6.2 中部署 geoserver war

    java - 如何在主题(Liferay)中默认使 portlet 无边界?

    spring - RenderRequest 的@RequestMapping 错误

    java - 移植库时首先要做的事情

    java - 使用使用相对路径存储在 jar 中的资源文件中的 ChromeDriver.exe

    tomcat - 在 Netbeans 中自动部署 Liferay portlet

    java - 我可以仅使用应用程序服务器(Tomcat、JBoss 等)创建 Java 门户 (JSR 168/286) 吗?

    java - 仅当执行 jar 文件时,REST 客户端中出现 ClientHandlerException

    Eclipse:Web inf/lib 上的 App Engine SDK JAR