【问题标题】:Liferay 7 service module Unresolved requiremenLiferay 7 服务模块未解决的需求
【发布时间】:2016-07-13 07:42:26
【问题描述】:

我正在为 Liferay 7 开发一些功能。我知道仍处于 beta 版本,但我在 OSGi 包依赖项方面遇到了一些麻烦。当我尝试部署服务项目时,部署时发生错误

未解决的需求:Import-Package: com.liferay.asset.kernel.model;版本="[1.0.0,2.0.0)"

Anda 与其他类似 expando 导入包的情况相同。

问题是在我的 Eclipse Mars 中没有错误,在 Dependencies 中我可以在 Jar com.liferay.portal.kernel 中找到这些类,但我不知道为什么会抛出该错误。

在我的 build.gradle 我有这种依赖

编译'com.liferay.portal:com.liferay.portal.kernel:2.1.0'

我的 bnd 文件包含下一个:

 Bundle-Version: 1.0.0 
Liferay-Service: true
Require-Capability: liferay.extender;filter:="(&(liferay.extender=spring.extender)(version>=1.0)(!(version>=3.0)))"
Liferay-Require-SchemaVersion: 1.0.0
Liferay-Spring-Context: META-INF/spring
-sources: true
Import-Package: \
    com.liferay.portal.service;version="7.0.0",\
    com.liferay.portal.kernel;version='2.1.0',\
    org.osgi.framework;version="[1.7,2)",\
    *

任何人都知道在哪里查看那些限制为 1.0.0 到 2.0.0 的运行时依赖项?

欢迎任何帮助,因为我浪费了很多时间,而且我真的是这方面的初学者。

我想我正在处理这个问题,但出现了一个新问题......当我在我的服务项目中执行 buildService 时,它​​会创建所有东西,但问题是它在 SqlUpdateFactoryUtil 中创建错误,给出的参数与 API 不同7.0 所以抛出的错误是:

SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
                                                      ^
  required: DataSource,String,int[]
  found: DataSource,String
  reason: actual and formal argument lists differ in length

所以我猜服务构建器插件与我的 jar 版本不同步

【问题讨论】:

    标签: gradle liferay osgi bnd liferay-7


    【解决方案1】:

    将此行添加到 bnd.bnd 文件中,这将解决您的问题:

    Import-Package: *; version="0";resolution:=optional
    

    【讨论】:

      【解决方案2】:

      回复我自己和所有面临同样问题的人。

      重点是各种问题。

      • Elipse Mars 不会自动刷新 Jars 依赖项,您需要使用选项“Gradle --> Refresh Gradle Project”。
      • 依赖项使用不当。由于我是初学者,我使用错误的依赖项并尝试导入内核,但portal-service 7.0.0就足够了。

      现在我的所有三个项目(服务、api 和 web)都已正确部署并处于活动状态。

      现在我面临着试图包含在同一个保护多个 MVCPortlet 类中的其他问题。但这是另一场战争。

      【讨论】:

        【解决方案3】:

        您使用的是工件com.liferay.portal:com.liferay.portal.kernel 的2.1.0 版。

        但是,有人用版本 [1.0.0, 2.0.0) 声明了对此工件的运行时依赖项:大于或等于 1,并且严格小于 2。无法解析此版本,因为 2.1 大于2.

        您应该检查您的清单以修复此依赖关系,或者更好地使用工具(如 bnd)来生成此清单。

        【讨论】:

        • 感谢您的回复...我不知道去哪里找。我添加了我的 bnd 文件内容。我有 gogo shell,但不知道在哪里更新依赖项或其他什么。
        猜你喜欢
        • 2020-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-21
        相关资源
        最近更新 更多