将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]
我想这与嵌入式库(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>
错误消息的确切含义是什么?建议解决这些问题的方法是什么?
该消息表示(正在导出的)一个公共包中有一个类正在访问私有包(一个未导出的包)中的类。
嵌入jar时,不得使用Export-Package从嵌入式jar中声明软件包。它用于您从自己的捆绑软件中声明软件包。您必须使用<_exportcontents>导出org.elasticsearch.action.bulk。