1,开发环境准备
首先下载IDE和SDK软件,附件中已经包含liferay6.2和liferay6.1的版本,
1.1 安装Liferay IDE:打开Eclipse的Help-->Eclipse Marketplace,在下图所示搜索框中输入liferay,回车搜索:
搜索结果如下图所示:
注:其他安装方法:一,直接下载Liferay IDE,下载地址http://www.liferay.com/zh/downloads/liferay-projects/liferay- ide,下载后可直接打开使用;二,至http://www.liferay.com/zh/downloads/liferay-portal /available-releases下载eclipse插件,下载后在你的eclipse中安装。
下载完成后,首先把sdk解压到某一目录,进入到Eclipse中,选择windows-->preferences-->Liferay,选择Installed Plugin SDKs,点击
点击Next,在Liferay Tomcat directory项中点击Browse...,找到liferay-portal-tomcat下的tomcat所在的位置,如下图所示:
点击Next,可分别配置Liferay的javadoc、source的位置,如下图所示:
这一步可省略,省略后无法在Eclipse中查看源代码。 配置成功后,打开Eclipse的Servers面板,可看到Liferay的服务,如下图所示:
若没有该服务的话,可以右键server面板,然后新建一个server,新建项目之后可以将项目add and remove进来,所以启动该server服务器,进入liferay配置界面
注意,一定要将ojdbc-6.jar加入到lib中,否则无法配置oracle数据库,在配置前,请先建立需要配置的用户。
至此,环境搭建完毕
liferay portal运行时和服务器安装
你可以在受liferay portal支持的任意应用服务器上运行liferay,这里的目的是演示如何在tomcat服务器上安装liferay运行时,下面的步骤也可以用在其他类型的服务器上。
1, 在Eclipse下打开Server Runtime Enviroments 对话框,到window->Preferences->Server->Runtime Environments
2,单击Add按钮,并选择你的Liferay-portal-6.2.x目录。
2, 如果你选择了liferayportal目录,和一个被自动侦测到的jre安装包
3, ,服务器就会默认选择启动该jre,如果没有jre,你需要单击installed jres来选择可用的jre.
4, 单击finish;你应该可以看到你的liferay portal运行时在Preferences->Serverruntime Environments列表里。
5, 点击OK来保存你的运行时参考。
6, 如果你还没有生成一个服务器,可以在Liferay IDE的servers视图里生成一个,然后对该服务器进行测试:
测试 liferay服务器
一旦你的liferay portal服务器安装,你可以从Eclipse的servers下启动,你有不同的选择来启动和停用服务器:
l 在start服务器绿色按钮上单击来启动服务器(ctr+alt+r)
l 点击红色的stop服务器按钮来停用服务器(Ctrl+ALT+S)
l 右键单击服务器,选择启动
l 右键单击服务器,选择停用。
一旦你的服务器启动,你可以打开liferayportal home从Server标签上,通过右键单击你的liferay tomcat server并选择Open LiferayPortal Home.
接下来,我们需要在liferay IDE中生成一个新的liferay 项目,如果你阅读并按照我们的指导完成了相关准备工作,那么你的Plugin SDK和liferay portal服务器就已经在Liferay IDE中做好了配置,现在让我们在LiferayIDE中生成第一个liferay插件项目吧。
生成新的Liferay项目
LiferayPortal的插件必须在 liferay项目里生成,接下来让我们演示如何生成 Liferay项目的过程,
1去 File->New->Liferay Plugin Project.
2 在这个生成项目向导中,你将定义和配置你的项目
我们将生成一个插件项目,这个项目在我们整个指导手册中都会被引用到。首先我们需要生成一个插件的项目结构,然后我们会手工添加一个新的插件到项目中,同时还会进行额外的配置。
2.1提供项目名字,该名字被命名项目的目录,同时提供一个展示名,展示名会用到liferay portal的页面上,以区别不同的plugin.我们这里的演示Demo会拥有一个 elearn007-helloworld-portlet的项目及hi elearn007的展示名。
2.2选中Use default location 复选框。默认情况下默认位置设置成你当前的工作区。如果你向改变插件的默认保存目录,你可以不选中该复选框,并指定另外的目录位置。
2.3 选中Ant(liferay-plugin-sdk)作为你的build类型,如果你需要用Maven可以看后面的章节。
2.4你在前面设置的sdk和 liferay运行时应该已经被选中,如果还没有指定liferayIDE到一个plugin sdk,请按照前面部分的指导进行配置Plugin SDKs
2.5在插件类型面板上,你可以选择portlet,service builderportlet,hook,layout template,theme,和Ext。我们这里的项目选择Servicebuilder portlets,所以请确认service Builderportlet被选中。
后面你会发现更多关于插件框架的知识,现在我们集中在使用插件向导使用上。
我们的elearn007-helloworld-portlet项目会出现在 eclipse package 浏览器里,这里是插件的目录结构:
· PROJECT-NAME/
o docroot/WEB-INF/src
o build.xml - Common project file
o docroot/
o css/
o main.css
o view.jsp
o js/
o main.js
o META-INF/
o MANIFEST.MF
o WEB-INF/
o lib/
o tld/
o aui.tld
o liferay-portlet-ext.tld
o liferay-portlet.tld
o liferay-security.tld
o liferay-theme.tld
o liferay-ui.tld
o liferay-util.tld
o liferay-display.xml
o liferay-plugin-package.properties - Common projectfile
o liferay-portlet.xml
o portlet.xml
o web.xml
o icon.png
o view.jsp
无论什么类型的项目,都会生成build.xml文件和liferay-plugin-pakage.properties文件,在这里都用Common project file进行了特别强调。
这里的build.xml文件允许liferay IDE使用ant来自动编译和部署你的插件,而另外的文件liferay-plugin-package.properties文件则包含了你项目的重要元数据。
Liferay IDE的属性视图会让你对该文件的属性字段进行管理,包括你项目的依赖关系,部署场景,展示名,及liferay版本。如果你把你的项目当作一个应用发布到liferay应用商店,liferay-plugin-package.properties文件中的 name属性就会被当作该应用的名字,接下来你需要把你的新插件项目部署到你的liferay服务器了。
部署新liferay项目到 liferay服务器
你有一个插件项目,你需要部署它,最简单的办法是把该项目从包浏览器拖拽到你的在服务器视图里的liferay 运行时,另外你也可以使用下面的方法:
1, 选中你的新插件项目,然后右键单击在servers标签页上的 liferay服务器。
2, 选择添加和移除…
3, 选中你的插件项目,并点击Add来部署到服务器。
4, 点击Finish.
部署你的项目后,你可以看到给项目的部署消息,在控制台上,声明你的新portlet可以被使用的信息。
打开liferay portal 主页(http://localhost:8080/ )并以administrator管理员身份登录,如果是第一次启动liferay,会进入安装向导,具体如何安装,请参考本手册的前面部分,和相关视频。
当登录成功,单击 Add-More 选中Sample分类,然后点击你新的插件,后点击添加,即可完成让刚发布的插件显示在web页面上。
现在我们已经知道如何生成项目了,下面我们会学习如何生成一个新的插件在项目里,在开始之前,我们首先修改下项目默认生成的portlet项目(elearn007-helloworld):
1,打开docroot/web-inf/liferay-display.xml文件,删除
打开docroot/WEB-INF/liferay-display.xml 文件,并删除<portletid="elearn007-helloworld" />
2,打开docroot/WEB-INF/liferay-portlet.xml文件删除<portlet>…</portlet>段
<portlet>
<portlet-name>elearn007-helloworld</portlet-name>
<icon>/icon.png</icon>
<header-portlet-css>/css/main.css</header-portlet-css>
<footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
<css-class-wrapper>elearn007-helloworld-portlet</css-class-wrapper>
</portlet>
3,打开docroot/WEB-INF/portlet.xml文件,移除<portlet>…</portlet>片段
4,删除docroot/view.jsp文件
现在你已经为生成新的样例plugin准备好了一起。
生成插件
liferay项目包含多个插件,如果你按照本手册前面部分的指导,你已经生成了新的项目elearn007-helloworld项目,而且你生成了一个elearn007-helloworld-portlet项目,在本部分,我们会向elearn007-helloworld 项目添加两个插件:地址列表插件和日程列表插件,
演示在已经生成的 liferay项目里生成插件的通用步骤。在后面的部分,我们将完成开发的插件,允许用户添加,编辑和删除事件和地址,及列表显示事件和地址,对特定的事件和地址进行检索,及查看相关明细信息。
现在让我们学习如何生成地址插件和事件插件在elearn007-helloworld.xml项目上。
我们的liferay IDE包浏览器显示我们的elearn007-helloworld。因为它是portlet类型的项目,因为有支持多portlet插件的结构。让我们从生成地址portlet开始吧。
按照下面的步骤来生成位置列表portlet:
1,右键单击你的elearn007-helloworld-portlet 项目在包浏览器,并且选择 new->Liferay Portlet.
2,新建liferay portlet 对话框将显示出来,在这里可以对你的portlet类名进行设置,在这里我们定义为Elearn007LocationListingPortlet在本例子中,包全限定名 com.elearn007.portletdemo,而继承类为com.liferay.util.bridges.mvc.MVCPortlet.另外你也可以选择
com.liferay.portal.kernel.portlet.LiferayPortlet或者
javax.portlet.GenericPortlet做为你的超类。
当设置上面的属性值后,点击下一步。
3,该窗口为liferay portlet 向导,你将为你的portlet设置部署描述。首先输入你的portlet的名字,这里为:elearn007-location-listing,然后输入展示名和标题;Elearn007Location Listing。在本窗口你还可以指定portlet模型,视图模型被自动选择。这里有些选项是针对项目资源的;你可以指定JSp文件的生成路径。
5, 下面的窗口可以让你设置 portlet 的图标,主样式表,主 javascript 文件,在 liferay 展示部分,你可以制定分类,是否添加到控制台等,通常该窗口保持默认设置,直接点击下一步即可。
默认情况下,新的portlets使用MVCPortlet 框架,一个轻量级的portlet框架。默认的MVCPortlet项目使用独立的jsp文件来代表每种portlet模型:每种注册的portlet模型与一个同名jsp文件交互,例如edit.jsp文件为编辑模式edit mode而存在,同样的help.jsp为帮助模式存在。
让我们重新部署我们的portlet插件项目,方法是在Server标签页,简单的右键单击,并单击redeploy重新部署即可。
现在你已经生成和部署了Elearn007Locationlisting和elearn007EventLListing portlet,从同一个项目,而且,location listing portlet 完成后允许用户输入到可用的事件地址中