1

一点背景知识:我们正在使用 OSGI 的 Apache Felix 实现来进行 Web 开发(Adobe CQ5 又是基于 apache felix 构建的)。我们有几个自己的包(大约 10 个),每个包都配置为一个项目。

问题:在开发生命周期中,我们对包进行更改,然后使用 ant 脚本创建包并将其部署在 felix 中。我想知道是否有某种方法可以热部署我在开发模式下所做的更改,从而节省开发人员的时间。

根据我的研究,我们可以使用 felix 文件安装,它会监视文件夹中任何捆绑包的更改,并可以自动部署它们。但这再次意味着我需要运行 ant 脚本来构建 jar 文件并将其移动到文件安装正在监视的自动部署文件夹中。有没有更好/更快的方法来实现这一目标?该脚本目前需要大约 10 秒(大约)来编译类,创建 osgi 特定的元数据文件,将类+元数据捆绑在一个新的 jar 中。有没有办法进行热部署,以便我对 java 文件所做的任何更改都会自动反映在包中?

非常感谢

4

2 回答 2

2

如果您在Bndtools中开发项目并从内置启动器运行,那么 Bndtools 将立即处理构建您更改的任何 Java 代码,并将更新的包部署到运行时中。这会导致非常快速的代码/测试/调试/修复周期。

话虽如此,我很惊讶目前编译和构建你的包需要 10 秒!你是在一台极其古老的计算机上构建的吗?还是捆绑包的大小是数 GB?

于 2013-10-02T21:29:33.103 回答
2

我们尝试了 DCEVM,它几乎可以完成我们预期的所有工作,以缩短开发+修复+测试的生命周期。我向所有使用大型 Web 应用程序的 Java 开发人员推荐这个。感谢您对 bndtools Neil 的建议。

于 2013-10-10T10:26:26.593 回答