java - Maven 捆绑插件 : Export has private references

标签 java osgi bnd maven-bundle-plugin

maven-bundle-plugin 从版本 2.3.5 更新到版本 2.4.0 后运行 mvn clean install 输出一些警告信息,我不完全理解。例如

导出ch.entwine.weblounge.contentrepository.impl.index,有1个,私有(private)引用[org.elasticsearch.action.bulk]

我想这与嵌入式库 (elasticsearch) 有关。以下是 POM 的部分内容:

<dependencies>
  ...
  <dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>0.19.9</version>
  </dependency>
  ...
</dependencies
...
<Export-Package>
  ...
  ch.entwine.weblounge.contentrepository.impl.index
  ...
</Export-Package>
<Embed-Dependency>
  ....
  elasticsearch;inline=true
  ...
</Embed-Dependency>

错误消息的确切含义是什么? 解决此类问题的推荐方法是什么?

最佳答案

该消息意味着在您的一个公共(public)包(您正在导出)中有一个类正在访问私有(private)包(未导出的包)中的类。

嵌入 jar 时,您不得使用 Export-Package 从嵌入的 jar 声明包。它适用于您从自己的包中声明包。您必须使用 <_exportcontents> 导出 org.elasticsearch.action.bulk。

关于java - Maven 捆绑插件 : Export has private references,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218296/

相关文章:

java - OSGi类加载: why does BND imports classes that are not referenced directly?

java - 如何用bnd指定类文件

java - 生成一次出现一个数字的随机数

java - MySQL jdbc 驱动程序 ClassNotFoundException : com. mysql.jdbc.Driver

java - 使用约束冲突。无法解析资源 -javax.xml.bind.annotation 和 jakarta.xml.bind-api

java - osgi启动包NoClassDefFoundError

java - 并行运行 maven 测试而不等待兄弟模块依赖项

java - 什么是 NullPointerException,我该如何解决?

java - 集中配置管理

OSGi 和 Virgo 工具 : impossible to add a maven project (using bnd maven plugin)