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

2022-09-04 01:35:27

从版本更新到版本运行后,输出一些警告消息,我不完全理解。例如:maven-bundle-plugin2.3.52.4.0mvn 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>

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


答案 1

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

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


答案 2

推荐