如何动态在maven插件中加载项目及第三方类

在maven插件中是加载不到目标项目的类及目标项目引用的第三方所提供的类的,需要通过动态读取目标项目所依赖的classpath并根据这些classpath生成相应的url数组,以这个url数组作为参数得到的类加载器可以实现在maven插件中动态加载目标项目类及第三方引用包的目的。

 

如何获得相应的classpath?

@Parameter(defaultValue = "${project}", readonly = true)
private MavenProject project;

在mojo类中引入MavenProject参数,这个参数是目标项目的抽象,仅仅引入这个参数不需要多余的操作即可。

 

接下来在mojo的execute()方法中,调用project的getCompileClasspathElements()方法即可得到该string数组。

将该数组中的字符串依次转换成URL数组,即可作为自定义的类加载器的构造方法中的参数,该类加载器可以达到实现在maven插件中动态加载目标项目类及第三方引用包的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值