2016-07-26 76 views
0

期間,我們需要改變特定文件的內容捆綁,並能夠看到應用程序更改的文件內容而無需重新編譯/ rebundling /包重新安裝的發展。每當應用程序需要它的內容時,文件被Bundle.getEntry()讀取。如何改變束資源上即時在bndtools /菲利克斯環境

使用Eclipse PDE和Equinox是不幹簡單,因爲OSGi框架從Eclipse環境對待項目文件夾,解壓縮捆綁推出。每次應用程序讀取資源內容時,都會反映項目文件夾中文件的更改。

如果我理解正確的話,bndtools總是檢測資源變化時重新打包捆綁。但對於包含數百個資源文件的項目,需要花費太多時間。是否有可能實現類似於Eclipse PDE中的行爲?最好在Apache Felix中?我們僅在開發/調試期間才需要此類功能,並且只有在從IDE啓動應用程序時才需要此功能資源永遠不會改變生產。

要具體的 - 在我們的應用程序有少很多文件被編譯成幾個CSS。任何LESS文件更改後立即生成CSS。這是通過gulp和node.js實現的。當頁面重新加載時,我們需要立即看到更改後的CSS文件(幾乎)。請注意,我們沒有使用OSGi HTTP服務。

回答

0

不,這是不可能的。

如果Bndtools包裝的時間過長,可能是一個跡象,你的包太大了,你應該嘗試modularise更多。

+0

假設我們重新安排我們的捆綁包,以縮短打包時間。仍然 - 是否有「捆綁熱替換」選項 - 即正在運行的應用程序將訪問已更改的文件而無需重新安裝捆綁包? – st33v3

+0

如果您在Bndtools中啓動,那麼是的,這是默認設置。每次更改時,套件都會進行熱更新。 –

0

我有一些應用程序在那裏我捆的資源開發和工作正常。 (請參閱使用此模型的OSGi enRoute。)只要捆綁不是那麼大,它們就會在亞秒時間內建立。所以最好的建議是看看你是否可以在較小的多個模塊中分解代碼/資源。體積越小,速度越快。

如果這確實是一個問題,並且我認爲這有點拼命嘗試,那麼您當然可以更改調用getEntry來查看文件系統的代碼。在開發模式下(通過config admin設置),您可以從那裏獲取它。

相關問題