2015-09-09 84 views
0

當我運行mvn clean install,行家拋出以下異常:行家捆綁插件生成錯誤

出口不上紙疊的Classpath [罐:點]包

我能成功打造幾天前,爲什麼它發生?

+0

因爲回答這個我看到了原來的問題[這裏](HTTP:// stackoverflow.com/questions/32458371/osgi-bundle-compile-error)有更多的信息。如果兩次詢問同一個問題,根本不同的信息量將會有幫助。 –

回答

0

如果沒有POM配置的詳細信息,很難確定,但看起來您使用的是基於bnd的插件,這可能意味着maven-bundle-pluginbnd-maven-plugin

在任何一種情況下,正在生產的捆綁包都將導出不在捆綁包中的包。這是打破你的應用程序的一種肯定的方式,所以bnd無法創建包。

在猜測(因爲我沒有太多的信息去)下列之一發生:

  • 有人在你的包已經改名爲一個包,但沒有更新的出口在POM文件
  • 有人已經刪除了您的POM先前被提取到捆綁爲一個靜態鏈接依賴
  • 有人重構您正在使用快照的依賴,不再包含你要導出
  • 有人包具有 將一個jar文件嵌入到您的包中,但不會將其添加到包類路徑中。
  • 也有可能(但不太可能),有人已經配置了您的課不進入包文件的根目錄,因此類相對.都沒有。

解決前三個問題很簡單,可以修復軟件包名稱,重新添加正確的依賴關係或刪除導出。最後兩個也很容易解決。你可以改變你的bundle的classpath這樣的:

Bundle-ClassPath: /path/to/my.jar, /path/to/another.jar, /path/to/folder 

另一個,可能會更好,選擇是不包括在嵌套JAR文件中的代碼,而是直接在你的包中嵌入的代碼。這將意味着調整您的插件配置以使用嵌入語法。因爲我不知道是什麼插件,您正在使用的我不能給你一個例子,但對於BND的文件包括資源here