使用OSGi可能非常适合您。它将允许在应用程序之外创建模块。您还可以更好地组织依赖关系。如果您正确定义了不同模块之间的接口,则可以使用连续集成,因为您只需重建在签入时受影响的模块即可。
OSGi提供的机制将帮助您解开现有代码。由于类加载的工作方式,它还可以帮助您以更简单的方式处理补丁。
维基百科显示的一些OSGi概念似乎很适合您:
该框架在概念上分为以下几个方面:
- 捆绑软件-捆绑软件是带有额外清单标题的普通jar组件。
- 服务-服务层通过为普通的旧Java对象(POJO)提供发布-查找-绑定模型,以动态方式连接包。
- 服务注册表-用于管理服务(ServiceRegistration,ServiceTracker和ServiceReference)的API。
- 生命周期-生命周期管理(安装,启动,停止,更新和卸载捆绑软件)的API。
- 模块-定义封装和依赖关系声明的层(包如何导入和导出代码)。
- 安全性-通过将捆绑软件功能限制为预定义功能来处理安全性方面的层。



