前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >会去自己的两个url里面找

会去自己的两个url里面找

原创
作者头像
用户7737280
发布2021-11-30 16:52:56
1820
发布2021-11-30 16:52:56
举报
文章被收录于专栏:用户7737280的专栏

插件如果写得五花八门的话,那对于平台方来说,可能就是一个灾难,所以,平台方就要负责定标准,要在我平台上写插件,必须怎么怎么样。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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档