我正在修改現有的庫集合,將它們構建爲OSGi包。這是一個多模塊Maven項目,具有多層POM繼承和聚合。理想情況下,插件配置只能放在父POM中。該項目由100多個罐子組成。已經有一個包含整個庫的大型軟件包並導出所有軟件包。我的努力旨在使圖書館更加模塊化,這是首先將它們作爲OSGi捆綁銷售的主要原因。處理拆分包:Require-Bundle with maven-bundle-plugin
主要問題是這個庫有一個拆分包的噩夢,我不能改變包的結構。我試圖使用Require-Bundle
來解決問題,正如書中的建議中的OSGi一樣,儘管書中提到這不是一個好習慣。我嘗試了在Import-Package
中使用名爲「split」的任意屬性的建議來分離一個包的各個部分,並僅導入某些包。但是由於提供相同包的捆綁包的數量,結果太複雜了。
我問題是如何配置maven-bundle-plugin
<Require-Bundle>
指令,如果可能的話,使用通配符(如*)作爲告訴它使用所有的Maven依賴,而不必手動列出所有包名的形式和版本;即是否有替代:
<Require-Bundle>lib-api; version=${project.version}</Require-Bundle>
使用某種通配符匹配,可以放在父POM中?
這樣做的問題 - 如果確實有可能 - 是假設您的運行時依賴關係與構建時依賴關係相同。通常情況並非如此。 –
是的。事實上,我假設所有要插入'中的bundle都是在構建時可用的Maven依賴關係 –
Boj
爲什麼不將這些庫合併到一個包中呢? –