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

ogg*_*563 8 portlet jar liferay

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

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

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

Pra*_*h K 15

你有办法做到这一点:

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

结论

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

所以我在这里列出了利弊,供您自己决定.我很想知道在专家的生活中是否有更多的方法(更清洁).