我想在apache-karaf 3.0.3中部署一個包,其中包含一定數量的第三方jar文件,我將其嵌入 因爲第三方jar文件不是OSGi捆綁。其中一個jar文件包含一個java文件中的import語句,在最新版本的jar文件中不存在 (我沒有jar文件的舊版本)。在karaf中部署第三方jar文件時出錯
e.g:jar文件1 - Class1的 - 進口com.java.test.io
雖然部署與我面臨的一個錯誤的jar文件我的應用程序包。
錯誤執行命令:在束執行命令錯誤: 無法在束391執行命令:束「com.test.example.bundle_0.1.0.SNAPSHOT [391]」不能被解析。 原因:缺少約束:Import-Package:com.java.test.io;版本=「0.0.0」
我想複製簡單的Java應用程序的場景,它按預期工作。 我的假設是,卡拉夫將掃描所有進口報表,並檢查是否存在合適的進口報表(包級別許可) 是否存在適當的進口報表。 任何人都可以解釋爲什麼Java應用程序運行,並在卡拉夫它失敗?
的pom.xml
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>mybundlename</Bundle-SymbolicName>
<Embed-Dependency>jar1,jar2,jar3,jar4</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
你是如何利用嵌入式jar文件構建你的包? – Ralf