一、准备工作
-
liferay-portal-tomcat-6.2-ce-ga6-20160112152609836.zip
-
liferay-portal-src-6.2-ce-ga6-20160112152609836
地址
https://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.2.5%20GA6/
- liferay-ide-updatesite-2.2.4-ga5-201507230603
地址
https://sourceforge.net/projects/lportal/files/Liferay%20IDE/
-
ant(构建脚本工具,请配置好环境变量)
-
Java SDK 1.6(开发Java程序当然要安装,请配置好环境变量)
二、配置IDE环境
(1)集成Liferay
-
打开Eclipse,点击 Help - > Install New Software 点击Add,输入Name:Liferay IDE。点击Archive选择 liferay-ide-updatesite-2.2.2-ga3-201501300730.zip 包
-
依次点击OK -> Seclet All -> Next
-
坐等安装
-
安装完毕后重启Eclipse
-
配置Liferay SDK,依次点Windows -> Preferences,搜索Liferay,点击Installed Plugin SDKs
-
点击Add,配置SDK,选择Liferay SDK解压后的文件路径
(2)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的配置;
三、导入源代码
可以使用Eclipse的File–>Import–>General–>Existing Projects in to Workspace。将解压的源码导入到Eclipse中。
导入源码后,如果是6.1.1的源码,可能会出现如下的错误: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++),在其中找到(大概在11行),将此行注释掉或删除。然后回到Eclipse中刷新工程(选中工程按F5,或在右键菜单中选择刷新)。
四、编译源码
既然要调试源码,首先是需要能够对源码进行编译。Liferay的源码不是一个普通的Web工程,不能使用普通的方法进行编译部署。但liferay官方已经提供了相应的ant脚本进行编译部署,但首先还需要一些简单的设置。
1、打开liferay的源码目录,找到app.server.properties文件。
2、将些文件复制一份,重命名为app.server.{username}.properties的文件,其中的{username}为当前系统的帐号名称。如我的系统帐号是08404,则将其命名为app.server.18404.properties即可。具体的可以打开CMD,以里面显示用户名为准。如下图:
3、打开此文件,找到app.server.parent.dir=
p
r
o
j
e
c
t
.
d
i
r
/
.
.
/
b
u
n
d
l
e
s
。
将
后
面
的
{project.dir}/../bundles。将后面的
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中
六、遇到的问题
1、 Liferay的开发环境我们需要工程的编码为UTF-8,新安装的Eclipse的默认编码为GBK,修改方式为Windows->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的编译,即可正常编译。