所以我的POM中有这样的东西:
<dependency>
<!-- jsoup HTML parser library @ http://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.1</version>
</dependency>
从某个地方的maven repo中获取jsoup-1.7.1.jar
并将其放在我的 Maven Dependencies 文件夹中。
现在我可以在我的代码中使用它(Eclipse不会抱怨),但是当我尝试在我的MANIFEST.MF
文件中对它进行依赖时:
Import-Package: org.osgi.framework, org.jsoup, org.jsoup.nodes
Eclipse一直在抱怨:
No available bundle exports package 'org.jsoup.nodes'
No available bundle exports package 'org.jsoup'
有人可以向我解释为什么会这样吗? (我很好奇确定MANIFEST.MF
看到的内容的过程
答案 0 :(得分:2)
当您使用eclipse PDE时,您必须创建一个包含所有必需包的目标平台。正常的依赖性解析不与目标平台耦合。因此,您必须将每个依赖项添加到maven pom和目标平台。
顺便说一下。如果您正在开发基于服务器的OSGi项目,最好不要使用PDE。您还可以使用maven捆绑包插件创建捆绑包。它会分析您执行的导入并自动创建清单。在大多数情况下,这比PDE清单第一种方式要好得多,而且对maven来说效果更好。
答案 1 :(得分:0)
只需在该软件包清单文件中添加一个导出语句,请记住每次导入都应该导出enter link description here