簡體   English   中英

如何在bndtools / felix環境中即時更改捆綁資源

[英]How to change bundle resources on-the-fly in bndtools / felix environment

在開發過程中,我們需要更改捆綁軟件中特定文件的內容,並且能夠在不重新編譯/重新捆綁/捆綁軟件重新安裝的情況下查看應用程序中已更改的文件內容。 每當應用程序需要其內容時, Bundle.getEntry()都會讀取文件。

使用Eclipse PDE和Equinox十分簡單,因為從Eclipse環境啟動的OSGi框架將項目文件夾視為未打包的捆綁包。 每次應用程序讀取資源內容時,都會反映項目文件夾中文件的更改。

如果我理解正確,則bndtools總是在檢測到資源更改時重新打包捆綁軟件。 但是,對於具有數百個資源文件的項目,這會花費太多時間。 是否可以實現與Eclipse PDE中類似的行為? 最好在Apache Felix中? 僅在開發/調試過程中以及僅從IDE啟動應用程序時,才需要此類功能。 資源將永遠不會在生產中改變。

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

不行,這是不可能的。

如果Bndtools包裝花費的時間太長,則可能表明捆綁包太大,您應該嘗試進一步模塊化。

我有一些應用程序,這些應用程序使用捆綁資源進行開發,並且運行良好。 (請參閱使用此模型的OSGi enRoute 。)只要包不那么大,它們就會在不到一秒的時間內建立。 因此,最好的建議是查看是否可以在多個較小的模塊中分解代碼/資源。 越小,構建速度越快。

如果這確實是一個問題,並且我認為這是一次絕望的嘗試,那么您當然可以更改調用getEntry的代碼以查看文件系統。 在開發模式(通過config admin設置)中,您可以從那里獲取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM