fs_jin

导航

 

一、准备工作

(源码调试基于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的解压目录,如下图:

clip_image002

点击Finish完成Tomcat的配置;

(2)配置SDK

打开Liferay IDE,Window-->Preferences-->Liferay-->Installed Plugin SDK,点击右边的Add…按钮,选择Liferay plugins SDK的解压目录,如下图所示,点击OK,完成SDK的配置。

clip_image004

三、导入源代码

clip_image006

导入源码后,如果是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,以里面显示用户名为准。如下图:

clip_image007

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中。

clip_image008

五、运行调试

在四的基础上deploy后,即可对liferay的相关源码进行编译调试。如果是第一次进行debug,可能会跳转到显示Source not found,此时,点击下面的“edit source lookup path”,在弹出的对话框里面点击Add -->Java Project,在这里将我们的Portal-trunk工程勾选上,点击OK等,即可开始Liferay的源码调试。

clip_image010

六、注意小点

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的编译,即可正常编译。

posted on 2014-03-06 11:13  fs_jin  阅读(459)  评论(0)    收藏  举报