Maven Bundle插件:导出具有私有引用

问题描述 投票:11回答:1

maven-bundle-plugin2.3.5版本更新为2.4.0版本后,运行mvn clean install会输出一些警告消息,我不完全理解。例如:

Export ch.entwine.weblounge.contentrepository.impl.index, has 1, private references [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>

错误消息的确切含义是什么?建议解决这些问题的方法是什么?

java osgi bnd maven-bundle-plugin
1个回答
15
投票

该消息表示(正在导出的)一个公共包中有一个类正在访问私有包(一个未导出的包)中的类。

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

© www.soinside.com 2019 - 2024. All rights reserved.