在开发过程中,我们需要更改捆绑包中特定文件的内容,并且能够在应用程序中看到更改的文件内容,而无需重新编译/重新捆绑/重新安装捆绑包。Bundle.getEntry()
每次应用程序需要其内容时,都会读取文件。
使用 Eclipse PDE 和 Equinox 很简单,因为从 Eclipse 环境启动的 OSGi 框架将项目文件夹视为未打包的包。每次应用程序读取资源内容时,都会反映项目文件夹中文件的更改。
如果我理解正确,bndtools 总是在检测到资源更改时重新打包捆绑包。但是对于具有数百个资源文件的项目,它需要太多时间。是否有可能实现与 Eclipse PDE 中类似的行为?最好在 Apache Felix 中?我们仅在开发/调试期间并且仅当应用程序从 IDE 启动时才需要此类功能。资源在生产中永远不会改变。
具体来说——在我们的应用程序中,有很多 LESS 文件被编译成几个 CSS。CSS 在任何 LESS 文件更改后立即生成。这是通过 gulp 和 node.js 实现的。当页面重新加载时,我们需要(几乎)立即看到更改的 CSS 文件。请注意,我们没有使用 OSGi HTTP 服务。