场景:使用不同的工作插件应对不同的工作内容,工作插件之间可能存在同种但是不同版本的jar包。我们需要如何做?(ps:底层理论知识在后面)
一:尝试在一个模块里面引入不同jar包
这里导入一个jar的两个版本,但是只有一个被导入进来了,所以说在一个模块(一个pom文件)中是无法使用多版本的jar包。所以我们需要使用多模块(多个pom文件)。
二:多模块一个类加载器
建立一个父类项目,里面两个子项目,每个子项目相当于一个插件。
pluginCore添加对pluginOne和PluginTwo的依赖,但是还是需要导入aJar,不然会报classNotDef的错。如果导入aJar,就会发生上面一样的情况,没办法在pluginCore的pom文件中导入两个版本的aJar。
不能直接依赖,如果拿到插件实例,想调用插件功能,那么只能反射出来对象。