weixin_41393517 2018-02-28 03:25 采纳率: 0%
浏览 1153
已结题

liferay7.0基于mvcportal深入学习资料以及实例不需要简单demo。

本人小白,突然被老大分配让学习一下liferay7.0,无奈能找到的学习资料太少,请求各位大神的帮助,主要是想知道liferay7.0的客户端都能用来干嘛,以及如何使用

  • 写回答

2条回答 默认 最新

  • qq_18238249 2018-02-28 03:31
    关注

    Liferay 7.0的开发和之前的版本有不小的差异,本文搭建一个基本的开发环境的思路和方法。
    6.x的环境搭建的文章,请参考之前的博客:《Liferay6.2.5GA6开发环境搭建》
    (本文于2018.01.02进行修正)
    软件环境:
    必须:
    liferay-ce-portal-tomcat-7.0-ga5-20171018150113838.zip
    说明:Liferay的运行环境。
    liferay-ide-eclipse-windows-x64-3.1.2-ga3-201709011126.zip
    说明:开发所使用的IDE,其实就是一个基于Eclipse上运行的插件,当然也可以选择使用IDEA进行开发,这里介绍的是eclipse。
    非必须:
    liferay-ce-portal-src-7.0-ga5-20171024113503852.zip
    说明:liferay的源码,可以方便我们对于一些进行源码的写法进行参考。
    liferay-plugins-sdk-7.0-1.0.13-withdependencies-20171018150113838.zip
    说明:采用SDK开发模式所需要的,但是7.0不再推荐采用此模式。
    以上软件的下载可以从 https://sourceforge.net/projects/lportal/files/?source=navbar 这里进行下载。
    如果采用的是JDK7.0及以下的版本,在启动Liferay IDE后会找不到Liferay的相关插件。
    注意1:Liferay 7.0的开发需要JDK8的环境。
    注意2:Liferay 7.0运行需要的是JDK,而不仅仅是JRE(正常的J2EE软件的运行需要jre就足够)。
    不然出现此篇博客的情况:《Liferay7启动报错There is an error in invoking javac.》
    注意3:Liferay 7.0的开发SDK不是必须的,属于可选状态。
    将以上资源解压在某一个目录里面,最好是根目录,并对上面的文件进行重命名,不然在解压时可能会出错误,说路径太长的情况。
    我的解压目录一般如下,可以参考:
    Lifera工程目录
    liferay 7.0采用OSGI的架构,开发模式基本支持两种,传统模式和OSGI的模块开发模式。
    传统模式(基于ant或者maven,不推荐)
    传统模式依赖于SDK,和6.2的开发基本上一样。
    第一步:进行SDK的目录。找到build.properties文件,将此文件复制一份并重命名为build.${username}.properties,其中的${username}为当前系统的用户名称,我的命名后的文件名为:build.huqiwen.properties,可以打开CMD的控制台查看。
    第二步:使用文本编辑器(如notepad++)打开,找到里面的app.server.parent.dir这个变量,将他的值修改为当前的Portal的路径,如我的修改后为:
    app.server.parent.dir=I:/liferay7/portal
    注意:在windows环境下,路径要将正斜杠修改为反斜杠。
    第三步:启动liferay IDE,新建插件工程 New Liferay Plugin Project,如下图所示(如果启动后找不到,请检查当前电脑上使用的是不是JDK8,如果是8以下的JDK会出现找不到的情况):
    创建Liferay插件工程
    第四步:在上面的向导中输入工程的名称,点击next,选择Liferay MVC,点击下一步,在这里会让选择SDK的目录,选择我们上面输入的SDK解压目录即可。如果这里选择SDK后出现下面的错误:
    The app.server.deploy.dir(I:\liferay7\sdk/../bundles/tomcat-8.0.32/webapps) is not valid.
    请回过头检查第一步是否有做,或者是用户名是否正确。
    第五步:在创建好的工程里面写相应的代码,完成后使用ant的deploy进行部署即可。
    注意:在第一次创建工程的时候会下载大量的jar包,所以需要网络后,看着像卡差不动一样,一般根据网络情况,可能需要5-30分钟左右的时间。
    OSGI模块模式(基于Gradle)
    Liferay 7.0新增了基于Gradle构建系统的开发,这种是7.0推荐的模式。
    第一步:创建liferay Workspace Project,如下图,输入工作区的名称。同一个Eclipse的工作区里面只能创建一个Workspace Project。
    New Liferay workspace project
    第二步:点击完成即可,此过程需要下载jar包,速度会比较慢,根据网络情况而定。下载的是gradle的zip包,具体是下载到当前用户目录下面的.gradle目录下面。
    注意:如果网络比较慢,可以下载我下载好的目录,然后解压到自己的用户下面的目录里面,一般是在C盘(系统盘),用户--当前系统的登录用户名下面,可以找到一个.gradle的目录,将下面的下载后解压到里面,重新创建Liferay Workspace即可。也就是说如果是在公司里面可以从其他同事那里复制一份过来。
    如果下载长时间不好,说明网络不太好,可以尝试使用手机的4G网络进行下载。正常情况大概会在3-10分钟左右。
    第三步:工作区创建好后如下图所示,如果下面是空的,没有下面的modules、configs等,说明是创建失败了,一般是由于网络问题,可能是gradle的包下载出错引起的。Liferay workspace demo
    第四步:在菜单中点击New Liferay Module Project,在Project Template Name那里选择mvcportlet,如果是要创建数据库,选择servicebuilder,其他几种模式是OSGI的开发,后面再说明。
    第五步:在下一步中输入组件名称和包路径,然后点击完成。此时会在上面工作区里面的modules里面看到我们刚才新建的Portlet插件工程。
    第六步:在这个工程里面主要有两个目录,src/main/java和src/main/resource,前面是来放java代码,后面是来放JSP和一些资源文件等。
    第七步:写完代码我们现在可以将页面视图切换到Liferay Workspace,默认就已经切换,如果没有进行些切换,在右边找到Gradle Tasks,如下图,找到我们创建的工程,然后点击下面的build,双击里面deploy,将会对我们当前的工程进行打包部署。
    gradle task
    注意:这里点击deploy正常就应该部署到Liferay tomcat里面,但是此时没有部署到Liferay tomcat里面。需要做如下修改,在上面的工作区里面找到gradle.properties文件,打开在里面添加如下的配置,后面的是liferay Tomcat所在的目录,不然只会将生成的jar包在上面工作区里面的module里面,需要手动的将jar包复制到deploy里面部署。
    liferay.workspace.home.dir=I:/liferay7/portal
    第八步:如果现在我们要在这个Portlet里面访问Liferay里面的其他API,比如JournalArticle的相关API,需要在上面的portlet工程里面的build.gradle,添加相应的依赖。
    在dependencies里面添加:
    compile group: "com.liferay", name: "com.liferay.journal.api", version: "2.0.0"
    这个添加是com.liferay.journal.api的依赖,熟悉maven的一眼就看出来,前面是定义的作用域,第二部署是group,第三部分是name,第四部分是版本号。
    现在的IDE有一个问题,为添加依赖后不会自动刷新jar包,需要在项目上点击右键-->gradle-->refresh Gradel Project,执行之后会从远程仓库下载jar包,此时在我们的工程里面就可以使用相应的jar包了。

    开发环境的搭建与简单介绍就到这里。

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名