liferay - 我的第一个 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)
解决方案
问题出在您在build.gradle
. 发生的情况是您的构建环境使用您的 build.gradle 中声明的版本,但在运行时您的模块找不到它所依赖的库的兼容版本。因此无法部署。
假设您正在使用 Liferay 工作区(即您的 portlet 在子目录中modules
),解决它的最简单方法是使用它的“目标平台”:编辑您的 Liferay 工作区gradle.properties
(在顶层)并确保它包含一个表示您要定位的版本的行:
liferay.workspace.target.platform.version = 7.3.1
另外,检查文件的其余部分,它指向一个匹配的包,你应该保持一致。
完成此操作后,请从 build.gradle 中删除版本声明,因为它们将自动从匹配的运行时中获取。将运行时环境升级到下一个 GA 版本后,您可能需要再次升级目标版本。
推荐阅读
- php - 根据时间显示不同按钮的PHP不一致
- python - 从图像ID列表中随机选择唯一的图像ID - python
- javascript - 单击一个按钮以选择随机其他按钮
- javascript - mongodb express.js 在数组中查找对象
- c++ - 如何构建 Key 是抽象基类(不是 Value)的 Map
- python - 在 Flask 中以恒定的后台任务运行 Python
- python - 使用 matplotlib 重塑图中的轴
- bash - 一次创建所有分支时出错
- python - ValueError:数据必须为正(boxcox scipy)
- qt - 如何在 WebEngineView 中呈现的 html 文件中弹出文件对话框/打印对话框?