1. liferay的搭建
liferay官网下载:https://sourceforge.net/projects/lportal/files/(建议迅雷下载否则容易产生下载失败)
下载文件:
必须:
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不再推荐采用此模式。
注意:
如果采用的是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不是必须的,属于可选状态。
将以上资源解压在某一个目录里面,最好是根目录,并对上面的文件进行重命名,不然在解压时可能会出错误,说路径太长的情况。
我的解压目录一般如下,可以参考:
liferay7开发模式:
OSGI模块模式(基于Gradle)
Liferay 7.0新增了基于Gradle构建系统的开发,这种是7.0推荐的模式。
第一步:创建liferay Workspace Project,如下图,输入工作区的名称。同一个Eclipse的工作区里面只能创建一个Workspace Project。
第二步:点击完成即可,此过程需要下载jar包,速度会比较慢,根据网络情况而定。下载的是gradle的zip包,具体是下载到当前用户目录下面的.gradle目录下面。
注意:如果网络比较慢,可以下载我下载好的目录,然后解压到自己的用户下面的目录里面,一般是在C盘(系统盘),用户--当前系统的登录用户名下面,可以找到一个.gradle的目录,将下面的下载后解压到里面,重新创建Liferay Workspace即可。也就是说如果是在公司里面可以从其他同事那里复制一份过来。
如果下载长时间不好,说明网络不太好,可以尝试使用手机的4G网络进行下载。正常情况大概会在3-10分钟左右。
第三步:工作区创建好后如下图所示,如果下面是空的,没有下面的modules、configs等,说明是创建失败了,一般是由于网络问题,可能是gradle的包下载出错引起的。
第四步:在菜单中点击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,将会对我们当前的工程进行打包部署。
注意:这里点击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包了。