2012-08-29 40 views
5

我們的企業應用程序的基礎是OSGI,並且我們有幾個邏輯上爲OSGI捆綁包的Java項目。我們使用Maven來使用Maven Bundle插件來編譯應用程序。但是這個過程非常耗時,並且無法調試應用程序。我們還使用Runner和Pax(:provison)插件來運行應用程序。如果我們可以依靠Eclipse的自動構建功能並調試應用程序,它會讓我們的生活變得更加輕鬆。有沒有辦法將Eclipse配置爲能夠編譯(並且可以運行)基於OSGI的應用程序?在Eclipse中編譯和運行OSGI應用程序

回答

5

我不完全確定,如果我瞭解你,但是這裏。

那麼,只要你的軟件包駐留在PDE感知項目中,或者至少在你的目標平臺上運行/調試Eclipse中的OSGi應用程序非常簡單。

您是否有所有捆綁包的來源?沒有源代碼的調試並不是那麼有用。如果你這樣做,你能把你的bundle的所有源碼導入到你的Eclipse工作區嗎?

否則,您可以創建一個target platform,將所有捆綁包添加到該目錄。 (作爲第一次嘗試,我會說轉儲所有你的捆綁包在一個目錄中,並指向目標平臺)

無論哪種方式,那麼你應該能夠運行(或調試) - > OSGi框架 - >新 - >選擇你的軟件包 - >開始

你們都可以從工作區或目標平臺中選擇軟件包。

+0

哦,你確實需要使用PDE進行Eclipse安裝,忘了提及這一點。 –

3

對於建築物,您可以使用Eclipse Plugin Development Environment (PDE)。儘管它的名字,它並不特定於構建Eclipse插件,並可用於純OSGi捆綁包。 Eclipse插件是一些額外的OSGi包。

雖然我知道一些面向企業的OSGi平臺爲PDE提供了擴展,但無法幫助您運行或調試部分。

1

如果您已經在使用maven bundle插件,您可能會發現PDE的manifest-first方法不適合您現有的代碼優先構建(我假設最終您希望IDE build爲開發和調試,以及用於持續集成和自動化測試的命令行構建)。

你有兩種選擇。正如其他人所建議的那樣,您可以使用Eclipse的集成PDE,並將Tycho用於Maven構建。 Tycho使用PDE使用的相同數據,因此您不必多次寫下任何東西。或者,您可以使用maven bundle插件並在Eclipse中使用bndtools。和bundle插件一樣,bndtools是代碼優先的,所以你不需要擔心維護manifest。但是,您可能會發現bndtools中沒有PDE中那麼多的功能,我建議仍然手動檢查您的清單,以確保您瞭解正在生成的內容。無論你喜歡先清單還是先碼先,都是一場激烈的哲學辯論。

1

看看bndtools。 bndtools使用與maven bundle插件相同的bnd。你甚至可以使用bndtools和m2e。 bndtools可從Eclipse市場獲得。