Maven Bundle插件:导出有私人参考

Bas*_*sil 10 java osgi bnd maven-bundle-plugin

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

Export ch.entwine.weblounge.contentrepository.impl.index, has 1, private references [org.elasticsearch.action.bulk]

我想这与嵌入式lib(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>
Run Code Online (Sandbox Code Playgroud)

错误消息到底意味着什么?解决此类问题的推荐方法是什么?

Cri*_*ano 13

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

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