我目前正在尝试构建一个Maven项目并将其部署到osgi容器中。 apache felix控制台向我显示了80个未解决的Import-Package条目,尽管我已经告诉过maven-bundle-plugin包括所有直接和传递依赖项。我注意到一些奇怪的软件包,例如org.apache.poi.*
,但从未在任何地方使用过。所以我做了一些研究。我的一个依存关系对模块org.primefaces:primefaces:6.2具有传递依存关系。我查看了该捆绑包的MANIFEST.MF
文件,并注意到了这一部分:
Import-Package: org.apache.poi.hssf.usermodel;resolution:=optional,
org.apache.poi.hssf.util;resolution:=optional,
org.apache.poi.ss.usermodel;resolution:=optional,
org.apache.poi.ss.util;resolution:=optional,
org.apache.poi.xssf.streaming;resolution:=optional,
org.apache.poi.xssf.usermodel;resolution:=optional
因此,显然,maven-bundle-plugin看到了这些行,并将其添加到我的主捆绑包的MANIFEST.MF
文件中。这正常吗?我一直认为resolution:=optional
可以防止这种情况。我真的必须遍历所有错误解决的Import-Package行,并为每行添加一个排除项吗?