maven - OSGi 和 Maven 检测私有(private)包的使用

标签 maven osgi

我正在开始一个编写 OSGi 包并使用 Maven 作为构建管理工具的项目。我的理解是对于 OSGi 捆绑包,您可以选择要保持私有(private)/公开的包。

这是问题:

  • 如果我依赖于声明 com.example 的捆绑包包作为导出包并声明com.example.internal作为私有(private)包,在构建期间有什么方法可以检测到 com.example.internal 的使用吗? (构建应该失败)?

  • 如果 Eclipse 可以在开发期间检测到这将是很棒的,但我非常怀疑它可以。

    最佳答案

    一种选择是使用 Eclipse 的插件开发环境 (PDE),这是一套支持 OSGi 的工具。它不会让您针对内部包进行编译,因此它为您提供了开发时检查。与 maven 的 bundle 插件不同,它是 manifest-first 而不是 code first,这并不符合每个人的口味。

    要将 PDE 与 Maven 集成,最好的办法是使用 Maven Tycho plugin .这在 Maven 中为您提供了一个完全支持 OSGi 的编译阶段。

    关于maven - OSGi 和 Maven 检测私有(private)包的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954288/

    相关文章:

    java - 在 mac os 上使用 maven 运行 Spring Boot 失败

    java - NoClassDefFoundError : org/apache/log4j/Logger

    java - 使用 Maven 创建可插入项目

    java - 防止方法在另一个包中被调用/覆盖

    java - jetty.xml 在 Maven 项目中的位置?

    java - 在 Maven 中,如何引用文件系统上该位置不存在的父 pom?

    osgi - 为什么 ConfigurationAdmin 规范使用自己的事件机制,而不是 EventAdmin?

    java - 使用 maven-bundle-plugin 安装 OSGi 依赖项

    java - Spring Bean 配置文件和 OSGI

    java - 如何解决更深版本的jar-hell?