该ROOT
应用程序包含所描述的所有项目(经典主题、大约 10 个布局和众多 portlet)。
像这样创建自己的包是可能的还是好的做法?如何?
请给个提示。
该ROOT
应用程序包含所描述的所有项目(经典主题、大约 10 个布局和众多 portlet)。
像这样创建自己的包是可能的还是好的做法?如何?
请给个提示。
从理论上讲,可以将一个项目包含一个 Portlet、主题、布局和一个 Hook 都打包在一个项目中。
但是,从维护和开发的角度来看,将所有四种类型放在一起根本不是一个好的做法。
尽管有时您可能在一个项目中有一个 portlet 并挂钩,如果它们以某种方式相关,例如您希望有一些侦听器将数据添加到您的自定义表,然后您的 portlet 将提供一个接口来更新或查看该数据,所以在在这种情况下,它们是相互依赖的,如果 portlet 发生故障,那么钩子就没有用了。所以继续把它们结合起来。
因此,如果这 4 种类型以某种方式相关或相互依赖,而不是我看到将它们聚集在一起的用例(这种情况很少见),但仍然从维护的角度来看,我宁愿将 4 种分开。至少我会将 portlet 和主题分开,并且可能有一个 Portlet-hook 组合和一个主题-布局组合,因为即使从维护和开发的角度来看,它们也能很好地相互配合。
这是你如何做到的
MyCompletePackage-portlet
portlets
是.plugins-sdk
plugins-sdk
liferay-hook.xml
用于挂钩liferay-portlet.xml
用于 portletliferay-look-and-feel.xml
主题liferay-layout-templates.xml
用于布局build.xml
文件,只需像往常一样构建即可。build.xml
.build.xml
.让我知道这是否适合您或您是否遇到任何问题。
免责声明:我没有尝试过第 6 点,但它应该可以工作
通常,人们会在一场战争中添加所有 portlet,以便他们可以毫无问题地访问服务并节省上下文重新加载时间。
然而,带有 portlet 的主题可能不是一个好主意,因为我们更改了主题......因此在更新 portlet 时重新加载是不必要的。好吧,这是几个月一次,但仍然是让 portlet 远离主题战争的声明。