gpt4 book ai didi

java - Unresolved 要求 : Import-Package: com. google.common.base

转载 作者:行者123 更新时间:2023-12-02 19:06:45 24 4
gpt4 key购买 nike

我正在尝试向 Liferay 添加外部库 - Orika 库。

我在 build.gradle 中添加了 Gradle 依赖项,如下所示:

compileInclude group: 'ma.glasnost.orika', name: 'orika-core', version: '1.5.4'

我正在使用编译包含,以便模块也附加依赖项。

该库在本地运行良好 - 我已经使用类中的 main 方法对其进行了测试,但是当我部署到 Portal 时,我收到以下错误:

org.osgi.framework.BundleException: Could not resolve module: <YourModuleName> [2755]_  Unresolved requirement: Import-Package: com.google.common.base_ [Sanitized]

这似乎是由于运行时缺少库引起的,但不太清楚的是,如果当我在 public static main 内运行它时,它会按预期工作,为什么会在构建时添加这些依赖项?另外,我检查了 Eclipse 中下载的 libs Gradle 是否有任何带有 com.google.commom.base 的包,但没有发现。

因此,因为构建时完成了其他一些步骤,所以我检查了生成的 jar 中的 MANIFEST.MF(例如 eclipse-workspace \modules \build\libs),然后删除条目 com.google.commom.base从文件。错误消失了,但又出现了另一个错误:

org.osgi.framework.BundleException: Could not resolve module: <your_module_name> [2755]_  Unresolved requirement: Import-Package: com.sun.jdi_ [Sanitized]

所以,问题是 - 为什么添加这些依赖项以及如何删除或满足它们? - 鉴于我在 Eclipse 中没有它们,那么我会放弃它们.

最佳答案

这是我花了几个小时后得出的结论:

对于外部 jar,compileInclude策略的表现并不像我预期的那样 - 也许是一个很好的引导,但我按照下面详细的步骤进行了操作。

在我的情况下,仅使用 compileOnly当包含依赖项时效果更好。因此,第一步 - 将以下内容添加到您的 build.gradle 中:

compileOnly group: 'ma.glasnost.orika', name: 'orika-core', version: '1.5.4'

第二步中,您必须在 bnd.bnd 中注明归档外部 jar 需要的其他依赖项。就我而言(Orika lib),它需要以下列表:commons-compiler-3.0.8.jar,janino-3.0.8.jar,java-sizeof-0.0.5.jar,javassist-3.24.0-GA.jar ,paranamer-2.8.jar,@slf4j-api-1.7.26.jar - 我已经检查了存储库详细信息以便找到这一点并从那里获取信息(例如:来自 here )。那么,添加到 build.gradle 后我必须做什么是在bnd.bnd中添加以下行:

Include-Resource: @orika-core-1.5.4.jar,@commons-compiler-3.0.8.jar,@janino-3.0.8.jar,@java-sizeof-0.0.5.jar,@javassist-3.24.0-GA.jar,@paranamer-2.8.jar,@slf4j-api-1.7.26.jar

最后一步是排除构建过程放置在 MANIFEST.MF 中的包。文件 - 我在这里谈论以 Unresolved requirement ... 开头的问题。为了知道不需要什么,我部署了多次,每次我都将所需的包添加到 Import-Package列表(这是 bnd.bnd 文件中的另一个属性)。最终的名单是:

Import-Package: \
!com.sun.jdi.*,\
!com.sun.tools.attach,\
!com.google.common.base,\
!org.slf4j.impl,\
*

注意:您可能会发现阅读有关我所写内容的更多内容很有用 herehere .

关于java - Unresolved 要求 : Import-Package: com. google.common.base,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64938169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com