2010-01-02 194 views
3

我正在尋找開發多模塊,構建maven,OSGi應用程序時具有快速週轉時間的developmentn模型。使用Maven和OSGi快速轉換

實際上,最好的解決方案似乎是Pax Construct的maven插件(它反過來調用Pax Runner)來供應maven生成的bundle。但是,在這個(或另一個)maven插件的幫助下,我沒有找到如何部署到運行OSGi容器的的方法。 mvn pax:run總是重新啓動OSGi平臺。 AFAIK也不可能部署到不受Pax Runner管理的已經存在的OSGi容器(例如Glassfish v3或SpringSource dm Server)。

是否存在允許將Maven模塊快速部署到正在運行的OSGi容器的maven插件,理想情況下能夠掛鉤到packaging生命週期階段?

使用maven開發基於OSGi的應用程序時,您的開發週期如何?

+0

我沒有資格回答關於Maven的問題。但我想有些人可能會覺得這篇文章很有趣:http://kent.spillner.org/blog/work/2009/11/14/java-build-tools.html – 2010-01-02 11:20:06

+0

@Carl看起來很有趣。有趣?我不知道:) – 2010-01-02 12:06:42

+0

我認爲作者在咆哮時臉部發紫,這讓我覺得好笑。雖然很多人(包括我在內,這是我喜歡的另一個原因)討厭Maven,但我從未遇到任何如此痛苦和敵對的東西。我很欣賞那種娛樂價值。 – 2010-01-02 14:59:43

回答

2

如果您使用的是GlassFish,您可以配置Maven的目標/目錄以供GlassFish觀看更新,然後GlassFish會自動安裝&開始創建jar時,它會在jar刪除並更新時卸載它當jar在目標目錄中得到更新時,該bundle。爲了實現這一目標,創建一個名爲

org.apache.felix.fileinstall-maven.cfg像這樣的內容文件: felix.fileinstall.dir = /路徑/到/目標/ felix.fileinstall.poll = 5000 felix.fileinstall.bundles.new.start =真

將該文件放在域1 /自動部署/包/

對於其他問題,郵件GlassFish的用戶別名。 Sahoo

1

我不知道任何通用插件這樣做,但是,在GlassFish,部署在調用時部署OSGi包invovles使用--type osgi參數:

asadmin deploy --type osgi my-osgi-bundle-x.y.z.jar 

可悲的是,我找不到任何的支持在maven-glassfish-plugin中輸入選項。然而,maven-embedded-glassfish-plugin確實有embedded-glassfish:admin目標允許:

執行嵌入式服務器上指定的管理員命令。例如,您可以創建一個jdbc資源。

該插件沒有很好的記載,它的安裝程序將需要一些調查,我沒有測試這一點,但,如果你能通過--type osgiembedded-glassfish:admin目標(這是我的理解),那麼它應該是可能的綁定特定階段的目標,並將OSGI捆綁包部署作爲標準構建的一部分。