gpt4 book ai didi

java - 如何在maven-bundle-plugin生成的Manifest中识别包版本的来源

转载 作者:太空宇宙 更新时间:2023-11-04 11:59:05 24 4
gpt4 key购买 nike

我正在使用 maven-bundle-plugin 从 Maven 模块创建 OSGI bundle 。

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Import-Package>
*
</Import-Package>
<Export-Package>
my.bundle.packages
</Export-Package>
</instructions>
</configuration>
</plugin>

不幸的是,似乎存在一个公开 javax.annotation 的依赖项。因此,生成的 Manifest 包含 Import-Package: javax.annotation;version="[3.2,4)"

如何找出哪个依赖项导出此包?通过使用 mvn dependency:list 我已经能够排除一些依赖项(com.google.code.findbugs:annotations 和 com.google.code.findbugs:jsr305),但版本范围仍然存在。我一直在查找直接依赖项的 list 文件,但没有找到任何其他导出 javax.annotation 的 jar。

注意:我可以添加对 javax.annotation:com.springsource.javax.annotation 的依赖项,并且 list 将正确导入 javax.annotation 版本 1.0.0,但这不是必需的,我个人会发现排除未知依赖项会更干净。

最佳答案

How can I find out which dependency exports this package?

如果您安装了 *nix 控制台和 bnd 命令行工具,您可以尝试:

mvn dependency:build-classpath | grep jar | tr ':' ' ' | xargs bnd find -e 'javax.annotation'

可能有更好的方法来做到这一点,但这是一个起点

关于java - 如何在maven-bundle-plugin生成的Manifest中识别包版本的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099531/

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