所以我在我的POM是這樣的:從行家回購的地方,並把它放在我的Maven依賴文件夾爲什麼MANIFEST.MF不能從Maven的pom中看到包?
<dependency>
<!-- jsoup HTML parser library @ http://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.1</version>
</dependency>
它取jsoup-1.7.1.jar
。
現在我可以在我的代碼中使用它(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
看到的過程)
謝謝,但我已經有一個目標平臺定義的,而我卻沒有認爲我需要爲它添加每個依賴項......但是可以想到它 - 這是有道理的。但我仍然不明白爲什麼我的「插件」清單不能只使用maven提取的jar中的交互文件。這個「maven-bundle」插件做了什麼,這使得這個工作?它不能僅生成清單 - 因爲我已經有清單並且不起作用。 – drozzy
我也意識到我無法真正把它放到目標平臺上,因爲它沒有更新站點或任何類型的東西。所以我基本上必須下載jar,將它放到目錄中,然後將該目錄放置在我的Target Runtime中......這種否定整個Maven優勢。只是想... – drozzy
基本上你在這個過程中有兩個步驟。一步就是創建Manifest文件。這是Maven捆綁軟件插件可以提供幫助的地方。第二步是OSGi框架內的依賴關係解析。在PDE eclipse中使用目標平臺進行此操作。如果你不使用PDE(就像在我的教程中那樣),那麼OSGi依賴關係解析僅在OSGi服務器中發生,就像我在這個案例中的Apache Karaf一樣。當然,這仍然意味着你必須在Karaf中提供所有的依賴關係,但是Karaf可以使用Maven依賴關係,以便更好地匹配。 –