LifeRay的portlet开发(使用Eclipse)- 想说Hello不容易!
来源:互联网 发布:sql判断师傅为空 编辑:程序博客网 时间:2024/04/29 15:41
备注:本博客主要目的是记录开发调试过程的所有事情,难免冗长,并且不是严格的记录。主要供自己查找和回顾开发调试过程。他人阅读的话,仅供参考。文末也提供了有用的可下载的参考资料。
采用NetBeans开发LifeRay Portlet有一定的困难,所以并行的,尝试以Eclipse来开发。这个开发平台有更多的原厂(LifeRay)支持和社区、网络文章支持。
以下的步骤是按照胡启稳的这个文章来的。“Liferay 6.1开发学习(一):环境搭建”。只是变更成了最新的对应软件版本。
http://www.huqiwen.com/2012/08/30/liferay-6-1-development-study-1/
对应的,以下是LifeRay的开发者网站的对应部分,英文的,似乎更老。胡启稳的文章更对中国人民的胃口。
https://dev.liferay.com/develop/learning-paths/mvc/-/knowledge_base/6-2/developing-apps-with-liferay-ide
首先是下载。下载如下所示的整合好的Eclipse+LifeRay IDE:
启动Eclipse后,配置LifeRay SDK:
然后配置Liferay运行环境:
因为实际运行Tomcat的目录是C:\LR62\liferay-portal-6.2-ce-ga4\tomcat-7.0.42, 如下:
Liferay的开发环境我们需要工程的编码为UTF-8,新安装的Eclipse的默认编码为GBK,修改方式为Window - Preferences - General - Workspace,在这下面的Text file encoding处选择other,UTF-8。点击OK保存。
在Eclipse中尝试启动TomcatServer,有如下错误,估计是因为这个Server和真正的Server不是同一个。:
==========================================================================
经过检查,确实是Tomcat没有设置对。关键是要选择Liferay V6.2 CE (Tomcat 7) 那一项。如下:
然后设置了更多的相关目录和文件选项,如下:
然后再启动这个Server,就正常可以启动了,部分的显示如下:
。
尝试第一个Portlet:
“4、ant部署时的服务器路径等信息从哪里读取
由于Liferay 6有了SDK,所以我们通过Liferay IDE开发或者是不使用IDE时,服务器的路径等信息都是保存在SDK目录下面的build.properties里面。
这个里面存储的信息有我们使用的ant部署时所涉及到的相关路径信息。同样,Liferay不建议直接修改此文件,而是建立一个build.{user.name}.properties的文件来个性化我们自己的配置信息。这里的user.name是当前系统的登录用户。如我的电脑当前的登录用户为administrator,则这个文件命名为build.administrator.properties。
我们需要覆盖build.properties里面的内容的直接写在这个文件里面,如想更改tomcat版本或者是服务器目录名,则只需要在build.administrator.properties里面写上下面的信息,其他的不用动。”
================================20151110=============================================
怀疑是Ant部署的问题,查了Ant插件的情况,和对应的几个文件目录:
在Portlet的属性里面的Builder,没有提到Ant:
作为插件,没有问题:
LifeRay IDE的情况:
Outline 和Ant 里面看起来是正常的:
LifeRay的Deploy目录里面也出现了相应的XML文件。
Tomcat-7.0.42下面的webapp目录下,也出现了My Hello World Portlet-portlet的完整目录:
Tomcat-7.0.42下面的work目录下,也出现了My Hello World Portlet-portlet目录,但是为空目录,同类目录下其他目录也似乎都不完整:
按照某个博客文章,修改了SDK下的build.properties文件,app.server.parent.dir改成了直接的Tomcat目录的父目录:
有一个关于部署很重要的build-common-plugin.xml文件.
经查,在部署后,对应Deploy下面的xml文件,以及webapp下面的目录,看起来都正常,Tomcat也尝试去部署了该目录,log如下:
Nov 10, 2015 1:30:08 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory C:\LR62\liferay-portal-6.2-ce-ga4\tomcat-7.0.42\webapps\My Hello World Portlet-portlet<span style="color:#ff0000;"></span>
问题是到底部署成功了没有,如果部署成功了,为什么在Liferay的添加应用程序里面的Sample部分看不见它。(没有部署成功,因为Deploy目录下有残存的文件。后来添加的注释)
(因为Deploy下面没有找到.war文件,可能还是项目的文件有误。这个不对,deploy目录下的war文件在成功部署后会消失。后增加的注释。)
那就从建立项目开始重做一遍吧。创建Plugin项目不成功,怀疑可能是网络问题。
修改网络到native(Window - Preferrence - General - Network),结果是Build Failed.
修改网络到Direct,结果还是不行。于是改回Native,好像还可以下载东西,比较正常。
重新创建项目,不行,log如下:
[Console output redirected to file:C:\LR_Dev\workspace\.metadata\.plugins\com.liferay.ide.sdk.core\sdk.log]Parallel execution with configuration on demand is an incubating feature.:createPortlet FAILEDBUILD FAILEDTotal time: 27.488 secsFAILURE: Build failed with an exception.* Where:Build file 'C:\LR_Dev\SDK\liferay-plugins-sdk-6.2\sdk.gradle' line: 340* What went wrong:Execution failed for task ':createPortlet'.> Could not resolve all dependencies for configuration ':portalTaglib'. > Could not resolve com.liferay.portal:util-taglib:7.0.0-SNAPSHOT. Required by: :liferay-plugins-sdk-6.2:unspecified > Unable to load Maven meta-data from http://cdn.repository.liferay.com/nexus/content/groups/public/com/liferay/portal/util-taglib/7.0.0-SNAPSHOT/maven-metadata.xml. > Could not GET 'http://cdn.repository.liferay.com/nexus/content/groups/public/com/liferay/portal/util-taglib/7.0.0-SNAPSHOT/maven-metadata.xml'. > Connection to http://cdn.repository.liferay.com refused* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
在家里,Portlet项目Build很容易:
但是Ant下面的Build,用时很长(~10min),而且有个ECJ问题,导致FAIL.但是记得有个博客专门说了这个ECJ问题,待查:
=======================20151115====================================================================================
中间又经过了多次试验,并且购买了胡启稳的Liferay视频。视频很有用,但是不是直接就解决了我的问题。
其中尝试过直接用胡启稳下载的2个目录,但是还是不成功。
在Build过程中,有时出来一种直接能看到下载进度的窗口:
经过周末的一些工作,现在是周日晚上,非常兴奋地说,已经成功的说Hello了!见下图:
详细的明日再写,主要是:
(1)通过ivy下载完所有需要的文件。必要时手动下载。
这个是这样的:双击ant窗口下的Q1-portlet的时候,主要进行了下载工作。由于种种原因,又慢又不稳定。对一些停住了的下载,可以看见在下载的文件的源链接,在浏览器里直接下载,然后拷贝到相应目录中。这样解决了多个文件下载不下来的问题。另外,一次不行,多试几次,这也是没有办法的办法。
.ivy和lib目录下的文件,是需要远程下载的。由于种种原因,又慢又不稳定。这里把我下载完成的共享出来,直接拷贝两个目录到sdk目录下就可以。虽然导入Eclipse的SDK时显示6.2.0版本,其实已经是6.2.4版本。
http://pan.baidu.com/s/1i3ycrnn
(2)把Liferay和Tomcat的Bundle,改到和SDK目录并列的目录,并且名称一定为bundles。于是可以了。
因为buid成功了,deploy的时候报了几行错误,其中最后一行是,
于是,干脆把LifeRay和Tomcat的Bundle,就真的放到它要求的那个目录中。于是成功了!
(中途,已经安装设置好的portal目录,直接改为bundles,但是LifeRay还会把portal目录建立出来,并写入几个目录,包括deploy, data和logs)需要把war包拷贝到那个portal下的deploy目录,才会自动部署,并且在部署完成后,自动删除war包。
=========================20151116==============================================
最后,干脆重新做了一遍,一上来就把bundles目录搞对,然后在Eclipse里面配置好Server,指向这个bundles目录,启动,进行简单的LifeRay设置,保留了它的示例和开发用的数据库。然后再新建Liferay Plugin Project,然后再在里面建立Liferay portlet。然后双击Ant窗口下的portlet的名称,一切就可以了。虽然有一大堆Warning,留到以后再细看吧。
在Liferay网站增加portlet时可以看到示例下面出现了我自己编的portlet,加入到Liferay后一直在转圈等待,刷新一下浏览器就好了。
总结:
(1)在公司网络里面远程下载不行。用手机网络可以,但是要记住拔掉网线,否则仍然在公司网络。无需VPN。
(2)远程下载又慢又不稳定。下载好的在这里,可以拷贝到对应目录直接用。就不会再去下载了。
http://pan.baidu.com/s/1i3ycrnn
(3)目录问题,把捆绑到Tomcat的Liferay目录,放到和sdk平行的bundle目录下。才能正确。可以继续研究这个配置问题,估计还涉及配套的其他配置,如下:
“4、ant部署时的服务器路径等信息从哪里读取
由于Liferay 6有了SDK,所以我们通过Liferay IDE开发或者是不使用IDE时,服务器的路径等信息都是保存在SDK目录下面的build.properties里面。
这个里面存储的信息有我们使用的ant部署时所涉及到的相关路径信息。同样,Liferay不建议直接修改此文件,而是建立一个build.{user.name}.properties的文件来个性化我们自己的配置信息。这里的user.name是当前系统的登录用户。如我的电脑当前的登录用户为administrator,则这个文件命名为build.administrator.properties。
我们需要覆盖build.properties里面的内容的直接写在这个文件里面,如想更改tomcat版本或者是服务器目录名,则只需要在build.administrator.properties里面写上下面的信息,其他的不用动。”
(4)胡启稳的视频起了很好的作用,解释了大量细节,和整体思路。这个很有帮助。又出现了除了胡启稳视频外的另外的视频教程,需要的时候再考虑考虑是否购买。
(5)从10月27日到11月15日,为了说一个"Hello",花费了18天时间。不容易。如果早一点购买视频教程,估计至少缩短一半的时间。主要是看时间值钱,还是钱值钱的问题了。
--------------------------------------------本博客结束-----------------------------------------------------
- LifeRay的portlet开发(使用Eclipse)- 想说Hello不容易!
- LifeRay的portlet开发(使用Eclipse)- 想说Hello不容易!
- LifeRay的portlet开发(使用Netbeans)
- [Liferay]使用Spring MVC开发Portlet应用
- Liferay Portal 服务器的PORTLET开发_1:eclipse 开发环境设置
- 使用LIFERAY的NOTIFICATIONS PORTLET做通知
- liferay 5.2.3 版本下,使用struts开发portlet
- LifeRay Portal 6学习笔记6:使用Struts2开发Portlet
- [Liferay]基于liferay开发百度地图portlet
- 关于Liferay的配置文件 —— 基于Struts开发Portlet
- 关于Liferay的配置文件 —— 基于Struts开发Portlet
- 实例讲解liferay的portlet开发,spring+hibernate(with db)
- Liferay portlet MVC开发的一些基础笔记
- Liferay自开发portlet的6.1到6.2升级
- 在自己的Portlet中使用Liferay的全文检索
- Liferay 6.1开发学习(二):创建一个Portlet工程
- Liferay 6.1开发学习(三):Portlet简述
- 使用Eclipse plus Pluto开发你的第一个与JSR168兼容的Portlet(一)
- 杭电2529Shot
- php处理字符串格式的计算公式
- 数列
- object—c(4)
- 【UML】——浅谈设计模式,框架,架构
- LifeRay的portlet开发(使用Eclipse)- 想说Hello不容易!
- webview加载本地html文件
- Virtualbox WDDM之DxgkDdiCreateAllocation
- LeetCode:Reverse Bits
- git错误error: Your local changes to the following files would be overwritten
- 安卓开发中用eclipse提交代码到github遇到的rejected-non-fast-forward问题
- ubuntu eclipse 配置tomcat
- JavaScript面向对象(一):封装
- IOS数据刷新(上拉刷新和下拉刷新)