1、3.1.1 通过IDE创建选择Eclipse菜单栏上第一个菜单,创建Liferay Project 或直接新建 Liferay Porject就会出现下面的对话框,选择Ext选项(前提eclipse已经配置好了SDK路径)创建完后生成的工程结构如下图3.1.2 在Liferay SDK目录里通过命令创建(Windows下)找到Liferay SDK目录,在Dos窗口里输入跳转到SDK中ext目录下,例如:输入cd /d D:Materialliferayliferay-plugins-sdk-6.0.6-20110225ext然后输入create.bat example Example 创建一
2、个example Ext插件项目,显示名字为Example(默认显示名字为工程名首字母应大写),项目结构和上面显示对话框一致。在ext目录下生成一个sample-ext工程目录,生成的目录结构和上面一致3.2 目录结构意义ext-impl/src: 主要存放portal-ext.properties、用户实现类以及当需要修改覆盖Liferay源码portal-impl.jar文件时修改的类ext-lib/global: 主要存放类库*.jar文件,当部署Ext插件时,首先应将此目录下jar包拷贝到应用服务器里相应目录下(此目录很少用,一般采用存放到下面目录里)ext-lib/portal: 这
3、里主要存放用户编写代码需要用到的jar包存放位置ext-service/src: 存放在这里类可供其它插件调用。当Build service.xml 生成的所有Service接口都存放在这个目录,而且这个目录将存放覆盖portal-servivce.jar的类ext-web/docroot: 主要包含Web应用一些配置文件及JSP页面Other: ext-util-bridges,ext-util-java,ext-util-taglib仅仅在高级场合用到,大多数场合可以忽视这些目录。3.3 主要文件的作用portal-ext.porperties: 被用来可以直接覆盖Liferay的任何配置
4、文件,甚至那些不能被Hook钩子插件覆盖的,这个文件将被替代服务应用服务器的任何portal-ext.properties文件,这个文件涉及到数据连接,系统补丁等等。portal-ext.xml: 被用来覆盖已定义的Liferay portlet,首先应从Liferay源码中的portal-constom.xml将所有的描述portlet拷贝到portal-ext.xml文件中,然后再进行相应的修改。Liferay-portal-ext.xml: 与portal-ext.xml很类似,但是额外定义liferay元素,从liferay源码中liferay-portal.xml拷贝所有的描述por
5、tlet,然后作相应修改。struts-config-ext.xml 和 tiles-defs-ext.xml: 用户创建自己的struts action在这里定义3.4 高级配置文件ext-impl/src/META-INF/ext-model-hints.xml:覆盖Liferay核心portlets使用数据模块域默认配置,这个配置文件决定怎样表单去创建或修改每个被提交的模块ext-impl/src/META-INF/ext-spring.xml: 覆盖Liferay使用的Spring配置文件和任何它的Portlets,可以为service提供数据源ext-impl/src/content
6、/Language-ext_*.properties: 国际化文件ext-impl/src/META-INF/portal-log4j-ext.xml:可以覆盖log4j配置文件ext-impl/src/com/liferay/portal/jcr/jackrabbit/dependencies/repository-ext.xml: 覆盖Jackrabbit库ext-web/docroot/WEB-INF/portlet-ext.xml: 覆盖Liferay中声明的核心Portlets,最常用的改变Portlets用户角色ext-web/docroot/WEB-INF/liferay-por
7、tlet-ext.xml:覆盖Liferay中声明的核心Portlets,涉及liferay-portlet-app_6_0_0.dtd所有详细选项,小心使用这个文件,由于这个文件能设置核心portlets某些值ext-web/docroot/WEB-INF/liferay-display.xml: 这个文件将ext显示在“添加应用”里显示名称及分类名称ext-web/docroot/WEB-INF/liferay-layout-templates-ext.xml: 这个文件指定自定义模板文件为Liferay默认提供的模板部署,通常你不需要修改它,除非一定要。ext-web/docroot/W
8、EB-INF/liferay-look-and-feel-ext.xml: 改变Liferay默认提供的主题properties文件, 通常你不需要修改它,除非一定要重要说明:创建完一个Ext插件工程后,移除所有SDK默认添加但没有必要的文件,这点非常重要。因为liferay记录了每个Ext插件部署的文件而且不允许部署两个Ext插件覆盖同一个文件去避免冲突,通过删除所有新建ext插件不是真正必要的文件将使得沿用其它Ext插件更加容易。4 Ext服务器部署4.1 SDK配置应用服务器路径在SDK根目录下,新建一个build.username.properties,配置以下应用服务器相关信息,如果
9、是直接采用eclipse IDE配置好的,eclipse会自动在SDK目录下创建此文件,则不再需要手动创建# Managed by Liferay IDE (remove this comment to prevent future updates)#Managed by Liferay IDE (remove this comment to prevent future updates)#Tue Aug 09 11:31:37 CST 2011app.server.portal.dir = D:Materialliferayliferay-portal-6.0.6tomcat-6.0.29w
10、ebappsROOTapp.server.lib.global.dir = D:Materialliferayliferay-portal-6.0.6tomcat-6.0.29libextapp.server.deploy.dir = D:Materialliferayliferay-portal-6.0.6tomcat-6.0.29webappsapp.server.type = tomcatapp.server.dir = D:Materialliferayliferay-portal-6.0.6tomcat-6.0.294.2 通过Ant编译部署到应用服务器在生成的ext项目里同时也生成
11、了一个build.xml,这个文件是直接引用到SDK ext目录下的build-common-ext.xml文件,所有生成的ext项目一定要放到SDK目录ext下,这点非常重要生成的ext项目默认会有上面Ant项目构建部署操作,这里可以直接双击胡军deploy或direct-deploy可以将ext项目打包部署到应用服务器里5 Ext开发5.1 定制portal-ext.properties5.2 定制 Liferay的Spring文件声明的接口的实现新建一个类继承需要修改的接口实现类,如MyUserLocalServiceImpl 继承UserLocalServiceImpl然后覆盖需要修改
12、的实现方法的业务逻辑,同时将在META-INF目录中修改ext-spring.xml添加 5.3 替换portal-impl的核心类portal-impl为Liferay的核心库,可能通过ext替换portal-impl.jar中核心类具体步骤:1) liferay源码中拷贝需要替换的源码修改原来的名字。如ServletResponseUtil2) 改为MyServletResponseUtil3) 用原来的类名创建一个新类,如创建一个新的ServletResponseUtil4) 定义静态方法5) 用日志记录两个类1 迁移老版本ext环境Ext插件提供了能从Liferay5.2甚至更前面版本
13、ext环境进行升级迁移,迁移时,值得考虑是否所有或一些能够用portlets和hooks类型。1.1 迁移操作进程进入到doc命令窗口,切换到Sdk目录ext下输入下面的命令:ant upgrade-ext -Dext.dir=/projects/liferay/ext -Dext.name=my-ext-Dext.display.name=My Ext如下图所示-Dext.dir: 需要迁移的ext目录-Dext-name: 迁移后ext项目的名称 字母都采用小写-Dext-display.name: 部署后显示名字 首字母大写当Build SUCCESSFUL后,在SDK下ext目录中会建立相应的Dext-name-ext文件夹1.2 将迁移的ext导入到eclipse中选择菜单栏第一个菜单,选择弹出对话浏览到迁移的ext目录,target runtime选择当前运行环境,点击Finish即可
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1