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

Java 如何为不同的jar版本分离类加载器?,java,osgi,classloader,Java,Osgi,Classloader,我有一个包含许多测试的测试war文件。每个测试都打包在maven项目中,具有许多依赖项。我们使用maven进行依赖关系管理,但它带来了一个问题。当一个测试更新一个公共库时,它会破坏依赖于旧版本库的其他测试。如何使所有的测试在一个完全独立的环境中运行,并有自己的库版本集?我不能在单独的jvm中执行它们,因为这些测试需要非常频繁地执行,大约30秒。OSGi可以帮助解决这个问题吗?是的,OSGi可以解决这个问题,但这不是一个可以轻易采取的步骤。当您准备投入时间和精力来隔离和管理依赖项、正确地对它们进行

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

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


请记住,由于某些遗留库使用的非模块化实践,采用OSGi一开始可能会很痛苦。

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

请记住,由于一些遗留库使用的非模块化实践,采用OSGi一开始可能会很痛苦