java - 自动分析 Eclipse 插件依赖关系

标签 java eclipse jar maven-2 osgi

我正在创建一个 JAVA 模块的 Maven 存储库,该模块是 Eclipse 的一部分(可能是 OSGI)。我正在尝试使用这种方式获取我需要的 JAR 文件的传递依赖关系 ( http://wiki.eclipse.org/JFace )。

它使用 Eclipse 的插件依赖分析器功能来创建树。我想知道它在后台如何工作。我可以在 JAR 的 list 文件中找到导入的命名空间。但它如何使用该信息找到相关的 JAR 文件呢?

我的最终目标是导出所有这些传递依赖 JAR 并将它们转换为 Maven 存储库。理想情况下,我希望将其自动化,这样每当有更新时我就不必手动执行。

最佳答案

一般来说,Eclipse PDE 项目有一个目标平台。该目标平台包含依赖项。

在 OSGi 包中,依赖项在 list 中指定。依赖关系有多种类型,OSGi 依赖模型比其他模块系统的简单“require”模型强大得多。它不仅在命名空间中指定了多种类型的依赖项(需要 bundle (经典的)、导入包、需要执行环境、需要 API 实现、需要服务等),而且它还支持根据功能的属性断言的强大过滤器。能力与需求相反。

为了处理这些功能和要求,OSGi 有一个解析器。它需要一组初始需求,并找到满足所有需求并遵循所有规则的解决方案。解析器的结果是一组将 bundle 连接在一起的电线

到目前为止,最好的使用环境是 bndtools。在bndtools中,您可以直接使用P2存储库(通常目标平台是P2存储库)。 (您也可以直接使用 Maven 存储库或 OSGi 标准化存储库,也称为 OBR。)然后,您可以在 bndtools bndrun 文件中选择图形的一个或多个根包。然后,解析器计算快乐闭包的 bundle 集合。这一切都是在 GUI 级别完成的。

还有一个名为“bnd”的命令行,您可以通过brew安装它或从https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/biz.aQute.bnd/generated/下载它的jar。

这是一个神奇的小工具,可以创造奇迹,但记录非常糟糕,尽管它确实有一个帮助命令。 :-((我是作者)

关于java - 自动分析 Eclipse 插件依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50685306/

相关文章:

java - 在 Java 应用程序中嵌入可执行文件

java - 扩展 JLabel 的类不遵循容器的布局

java - 从 JComboBox 中选择元素后如何刷新 JScrollPane?

java - eclipse + Maven + Tomcat : testing web apps when the WAR is built with custom options

java - 如何使用jdbc从eclipse连接到docker容器

java - 在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?

未提供源文件的 javac 编译器错误

java - 规模不断增长超出数学上下文精度

java - 通过单击 Eclipse Java 桌面应用程序中的图像从欢迎页面加载 VIEW

java - 如何在 Eclipse 中打包所需的外部库和源