一、准备工作
(源码调试基于6.1社区版GA3)
1. iferay-portal-6.1.2-ce-ga3(Bundled with Tomcat)
2. eclipse_Liferay_IDE_1.6.2.v201303111029-win32-x86_64(Plugins SDK)
3. liferay-portal-src-6.1.2-ce-ga3(Portal Source)
以上工具可从以下地址获取:
http://www.liferay.com/zh/downloads/liferay-portal/available-releases
4. ant(构建脚本工具,请配置好环境变量)
5. Java SDK 1.6(开发Java程序当然要安装,请配置好环境变量)
二、配置IDE环境
(1)Liferay运行环境
打开Liferay IDE,Window-->Preferences-->Server-->Runtime Environment,点击右边Add…,在弹出的服务器选择里面选择Liferay,Inc-->Liferay v6.1 CE (Tomcat 7),请在“Create a new location server”打上勾。
点击Next,选择liferay-portal-6.1.2-ce-ga3的解压目录,如下图:
点击Finish完成Tomcat的配置;
(2)配置SDK
打开Liferay IDE,Window-->Preferences-->Liferay-->Installed Plugin SDK,点击右边的Add…按钮,选择Liferay plugins SDK的解压目录,如下图所示,点击OK,完成SDK的配置。
三、导入源代码
导入源码后,如果是6.1.2的源码,可能会出现如下的错误:Project 'portal-trunk' is missing required source folder: 'portal-web/test'。此错误是说在build path下面找不到test目录。解决方法有两个(6.2.0中导入源码后,也有类似问题,解决方法同下面两个原理一样):
1、在portal-web下面建立一个名为test的目录。
2、打开源码工程目录下面的.classpath文件(使用文本编辑器打开,editplus或notepad++),在其中找到<classpathentry excluding="**/.svn/**|.svn/" kind="src" path="portal-web/test"/>(大概在11行),将此行注释掉或删除。然后回到Eclipse中刷新工程(选中工程按F5,或在右键菜单中选择刷新)。
四、编译源码
Liferay的源码不是一个普通的Web工程,不能使用普通的方法进行编译部署。但liferay官方已经提供了相应的ant脚本进行编译部署,但首先还需要一些简单的设置。
1、打开liferay的源码目录,找到app.server.properties文件。
2、将些文件复制一份,重命名为app.server.{username}.properties的文件,其中的{username}为当前系统的帐号名称。如我的系统帐号是jin,则将其命名为app.server.jin.properties即可。具体的可以打开CMD,以里面显示用户名为准。如下图:
3、打开此文件,找到app.server.parent.dir=${project.dir}/../bundles。将后面的${project.dir}/../bundles替换为下载的绑定Liferay的Tomcat的路径,如我的为E:/liferay/liferay-portal-6.1.2-ce-ga3,则修改后的地址为: app.server.parent.dir= E:/liferay/liferay-portal-6.1.2-ce-ga3。注意:从地址栏里面复制的地址为正斜杠,请修改成反斜杠。
4、现在Eclipse的ant面板里面点击,add buildfiles,将portal源码里面的build.xml文件添加到ant面板里面。
5、点开此build文件,点击deploy,即可将源码编译部署到tomcat中。
五、运行调试
在四的基础上deploy后,即可对liferay的相关源码进行编译调试。如果是第一次进行debug,可能会跳转到显示Source not found,此时,点击下面的“edit source lookup path”,在弹出的对话框里面点击Add -->Java Project,在这里将我们的Portal-trunk工程勾选上,点击OK等,即可开始Liferay的源码调试。
六、注意小点
1、 Liferay的开发环境我们需要工程的编码为UTF-8,新安装的Eclipse的默认编码为GBK,修改方式为WindowàPreferencesàGeneralàWorkspace,在这下面的Text file encoding处选择other,UTF-8。点击OK保存。
2、在编译的时候出现如下错误
Task cannot continue because ECJ is not installed.
ECJ was automatically installed. Please rerun your task.
这个问题在前面的博客里面提到过,http://www.huqiwen.com/2012/09/01/liferay-6-1-development-study-2-create-portlet-project/
解决方法为:
原因是ECJ包没有找到,ECJ是什么? ECJ是一个编译优化包,可以提升比Javac和JIKES更好的编译速度。要想使编译通过,有两个两个方法:
方法一:禁用ECJ。
在Liferay的SDK下面找到build.Administrator.properties,此处中间的Administrator名称不一定是这样的,具体体系名称是根据当前系统的用户名生成的。在里面添加如下内容
javac.compiler=modern
#javac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter
方法二:将ECJ的包添加到ant的路径里面。
ecj.jar包可以在Liferay的工程的源码包\lib\development下面找到。将此包添加到ant的路径里面。Windows-->preferences-->Ant-->Runtime,在右边的Classpath-->Ant Home Entries(Default) -->Add External JARs,将ecj包添加进来。
2、在编译源码的时候出现:
Please set the environment variable ANT_OPTS to the recommended value of
"-Xmx1024m -XX:MaxPermSize=512m".
这个提示的意思是说当前的JVM参数设置的太小了,不够liferay编译使用,需要增加JVM内存的分配,并建议将Xmx参数设置成1024m,MaxPermSize设置成512m。这是因为liferay的源码比较大,内容比较多,使用了大量的classloader等,需要比较大的内存。
解决方法上面已经给出提示了将环境变量(其实就是JVM的参数)推荐设置成上面的提示。
1)在Liferay工程的源码里面的build.xml上点击右键-->Run as-->External Tool Configurations
2)在tab标签里面找到Environment,点击new,在name里面输入ANT_OPTS,在value里面输入-Xmx1024m -XX:MaxPermSize=512m,然后点击apply。
3)再次运行ant的编译,即可正常编译。






浙公网安备 33010602011771号