首页 > 解决方案 > 我的第一个 portlet 没有显示在 liferay 仪表板上。激活它时会出错

问题描述

Build.Gradle 文件:

dependencies {
    compileOnly group: "com.liferay", name: "com.liferay.asset.taglib", version: "4.0.15"
    compileOnly group: "com.liferay", name: "com.liferay.comment.taglib", version: "2.0.7"
    compileOnly group: "com.liferay", name: "com.liferay.frontend.taglib", version: "4.0.15"
    compileOnly group: "com.liferay", name: "com.liferay.frontend.taglib.dynamic.section", version: "2.0.1"
    compileOnly group: "com.liferay", name: "com.liferay.frontend.taglib.form.navigator", version: "3.0.5"
    compileOnly group: "com.liferay", name: "com.liferay.frontend.taglib.util", version: "2.0.2"
    compileOnly group: "com.liferay", name: "com.liferay.journal.taglib", version: "3.0.1"
    compileOnly group: "com.liferay", name: "com.liferay.layout.taglib", version: "4.0.8"
    compileOnly group: "com.liferay", name: "com.liferay.site.taglib", version: "2.0.1"
    compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "4.0.0"
    compileOnly group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "4.1.0"
    compileOnly group: "javax.portlet", name: "portlet-api", version: "3.0.0"
    compileOnly group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"
    compileOnly group: "jstl", name: "jstl", version: "1.2"
    compileOnly group: "org.osgi", name: "org.osgi.service.component.annotations", version: "1.3.0"

    cssBuilder group: "com.liferay", name: "com.liferay.css.builder", version: "3.0.2"
}

` Liferay 服务器版本: liferay-ce-portal-7.3.1-ga2 Liferay Developer Studio 版本: 3.8.0.202002250521-ga1

当我执行此步骤时,即控制面板 > 应用程序管理器 > 找到我创建的 portlet > 激活,我收到以下错误。请帮助我摆脱这个问题

错误日志:

2020-04-28 00:55:45.121 ERROR [http-nio-8080-exec-4][PortletServlet:119] javax.portlet.PortletException: org.osgi.framework.BundleException: Could not resolve module: MyFirstPortlet [2280]_  Unresolved requirement: Import-Package: com.liferay.portal.kernel.portlet.bridges.mvc; version="[2.0.0,3.0.0)"_ [Sanitized]
javax.portlet.PortletException: org.osgi.framework.BundleException: Could not resolve module: MyFirstPortlet [2280]_  Unresolved requirement: Import-Package: com.liferay.portal.kernel.portlet.bridges.mvc; version="[2.0.0,3.0.0)"_ [Sanitized]
    at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:192)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:395)
    at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:88)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:248)

标签: liferayportlet

解决方案


问题出在您在build.gradle. 发生的情况是您的构建环境使用您的 build.gradle 中声明的版本,但在运行时您的模块找不到它所依赖的库的兼容版本。因此无法部署。

假设您正在使用 Liferay 工作区(即您的 portlet 在子目录中modules),解决它的最简单方法是使用它的“目标平台”:编辑您的 Liferay 工作区gradle.properties(在顶层)并确保它包含一个表示您要定位的版本的行:

liferay.workspace.target.platform.version = 7.3.1

另外,检查文件的其余部分,它指向一个匹配的包,你应该保持一致。

完成此操作后,请从 build.gradle 中删除版本声明,因为它们将自动从匹配的运行时中获取。将运行时环境升级到下一个 GA 版本后,您可能需要再次升级目标版本。


推荐阅读