zl程序教程

您现在的位置是:首页 >  其他

当前栏目

会去自己的两个url里面找

2023-03-20 14:53:52 时间

插件如果写得五花八门的话,那对于平台方来说,可能就是一个灾难,所以,平台方就要负责定标准,要在我平台上写插件,必须怎么怎么样。Maven给插件就定了契约,这个契约,是通过api jar包的方式。公务员遴选每次发布Maven新版本,与之伴随的,都会有一个api jar包。如果有人要基于这个版本的api jar包来开发插件,就需要把这个插件引入到自己的插件工程中。然后根据api jar包中的契约接口,来实现自己的插件逻辑。

比如,maven clean插件的工程代码中,就依赖了api jar包。如下:找到插件的实现类jar包,然后构造一个该插件的类加载器,去加载这个jar包,然后找到对应的实现了契约接口的类,比如这里的CleanMojo

福建遴选http://lx.gongxuanwang.com/sszt/39.htm

分别指向我本地仓库的两个文件,也就是api.jar和插件对应的实现的jar.2处,使用1.1中的url,构造了一个classloader,这个classloader的parent classloader,我们传的是,系统的AppClassloader。

同时,我们重写了这个classloader的行为,重写后的行为如下:遇到要加载的类时,自己优先加载,也就是会去自己的两个url里面找,看看能不能找到,如果找不到,公务员遴选就会进入异常,异常被我们捕获后,交给parent classloader去加载;还实现了接口MojoInterface,那么,这个接口类也就需要加载,因为我们classloader进行了改写(优先由自己进行加载),因此,最终呢,MojoInterface也就和MyMojoImplementation一样,都是由插件类加载器去加载的。

湖北遴选http://lx.gongxuanwang.com/sszt/7.htm