Liferay
“瘦身”笔记
---------TransientLove 2006-10-26
一、
概述
Liferay
本身提供了很多
portlet
,但对我们的项目或产品绝大部分不适合。在我们开发中,我们希望用最简洁的
Liferay
开发出适合我们产品。这样做的好处是,对
Liferay
代码有更深入的了解,包括其编译过程,核心代码等都有足够的了解,知己知彼,方能百战百胜嘛。
Liferay
官方网站提供了很多教程,包括用户指南,开发指南,
Lifecast
等,对如何给
Liferay
“瘦身”并没有相关的教程。现在我们自己手工给
Liferay
“瘦身”。
二、
“瘦身”过程
1.
运行
Liferay
后,选择不需要的
Portlet
。
2.
从
portal-ejb\src\com\liferay\portlet
,
portal-web\docroot\html\portlet
中删除。
3.
修改
portal-web\docroot\WEB-INF
目录下的
liferay-display.xml
,
liferay-portlet.xml
和
portlet.xml
,相应的在其目录下还有
web.xml,struts-config.xml,tiles-def.xml
等。注意:有几个
Portlet
不能删除,
words
,
Translator
(在第三条我将解释为什么不能删除)。
4.
修改
Portal-ejb\classes
下的
System.properties,portal.properties
文件。如果想编译成中文,修改
System.properties
下
user.country=CN
user.language=zh
这样在任何用户登录的时候就可以显示中文了。当然,也可在容器启动的时候设置语言环境。
5.
修改
portal-ejb\classes\ META-INF
目录下所有与自己的
portlet
相关的文件。(在的实验中,绝大部分文件都涉及到了)
6.
同样的,
custom-sql
,
resource-actions
目录也是如此。
7.
修改相应的
build.xml
文件,否则编译不通过。
8.
完成后在
eclipse
中打开此项目,修改错误。
以上过程不必严格按照步骤。“瘦身”并不是很难的事情,主要是耐心加细心便可以。
三、
Language.properties
Language.properties
文件内容是在开发的时候手工写入的,在
portal-ejb
目录下的
build.xml
文件有
build-lang
任务用
com.liferay.portal.tools.LangBuilder
类,
他的功能是把
build-lang-native2ascii-all
任务提供的参数生成相应的生成语言文件,比如中国汉字是
Language_zh_CN.properties.native
,它是如何生成的呢?
在
LangBuilder
类中调用
TranslationConverter
类,而此类是
Translater portlet
提供的,这就是开始为什么不建议删除此
portlet
的原因了。此类有以下代码
StringBuffer url = new StringBuffer();
url.append("http://babelfish.altavista.com/babelfish/tr?doit=done");
url.append("&urltext=").append(Http.encodeURL(_fromText));
url.append("&lp=").append(_translationId);
String text = Http.URLtoString(new URL(url.toString()));
从上可以知道
Liferay
的翻译成中文时是如此之滥的原因了
^_^
。如果还不明白,建议仔细研究一下这两个类。
四、
Sql
与
Language
相似,在
sql
目录下的
build.xml
中同样提供了生成
sql
的任务是
build-db
。同样提供了一个类
com.liferay.portal.tools.DBBuilder
,如果对
liferay
提供的数据不满意的话,可以参考这个类,修改相应的文件,产生适合自己的测试数据。
五、
后记
第三和第四都是关于文件生成的,与“瘦身”关系不是太大,以后将介绍如何进行权限开发以及如何利用
service.xml
文件生成代码的。
本以为
Liferay
瘦身是件很简单,很容易的事情,但是经过了这么长时间的“瘦身”,才知道自己原先的想法是多么的可笑,同时对
Liferay
的了解更进了一步。在此奉劝各位亲自动手给
Liferay
“瘦身”,来体会“瘦身”的乐趣。
通过“瘦身”,你对
Liferay
了解了多少?
六、
参考资料
银狐
999
:
Liferay
额外研究(二):对
Liferay
进行瘦身
http://blog.csdn.net/james999/archive/2006/07/27/986386.aspx