如何为不同的jar版本分离类加载器?

时间:2013-01-30 18:21:02

标签: java osgi classloader

我有一个包含许多测试的测试war文件。每个测试都打包在具有大量依赖关系的maven项目中。我们使用maven进行依赖管理,但它遇到了问题。当测试更新公共库时,它可能会破坏依赖于旧版本lib的其他测试。如何使用自己的库版本在完全独立的环境中运行所有测试?我不能在一个单独的jvm中执行它们,因为这些测试需要非常频繁地执行,大约30秒左右。 OSGi可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

是的,OSGi可以解决这个问题,但这不是一个轻松的步骤。当您准备好花时间和精力来隔离和管理依赖项,正确地对它们进行版本化以及可选地使您的代码和体系结构更加模块化/可重用时,请使用OSGi。

请记住,由于某些传统库使用非模块化实践,首先采用OSGi会很痛苦。