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

如何获得相应的classpath?

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

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

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

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

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

  1. maven 插件如何加载项目中的类

    maven 插件如何加载项目中的类 有不少插件希望扫描所在项目的类,如利用反射加载项目中的类,但如果不看官方文档直接开发,最初特别容易掉入一个深坑--ClassNotFoundException.因为 ...

  2. 如何在maven工程中加载oracle驱动

    2019独角兽企业重金招聘Python工程师标准>>> 由于oracle商业版权问题,maven不能通过中心资源库直接下载jar包,如果想要使用jar包,需要手动处理. 第一步:将o ...

  3. VC从文件中加载图片

    用MFC做GDI开发的朋友肯定熟悉CBitmap类,该类封装了HBITMAP对象,简化了关于HBITMAP的API操作,如LoadBitmap方法可直接加载资源中指定ID的图片,但是很多情况下我们需要 ...

  4. 在maven pom.xml中加载不同的properties ,如localhost 和 dev master等jdbc.properties 中的链接不一样...

    [参考]:maven pom.xml加载不同properties配置[转] 首先 看看效果: 点开我们项目中的Maven projects 后,会发现右侧 我们profile有个可勾选选项.默认勾选l ...

  5. PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method

    最终实例在下方 以前用过cakephp, 他们的数据库查询还是蛮强大的, 后来好奇它的类的写法,比如: <?php $this->Post->findByTitle('My Firs ...

  6. html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...

    反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射. ...

  7. idea中pom.xml中插件无法加载

    每次涉及到maven插件,看见自己的pom.xml里面总是红色无法加载,刷新也不知道点哪边,这里只能自己设置一下maven插件的自动加载,这样就不用担心插件无法加载了. 选择file-setting- ...

  8. 在WPF中加载gif动态图片

    向WPF中加载动态图片有很多种办法,下面介绍一种比较简单的办法. 右键项目,在管理程序包中添加XamlAnimatedGif包,进行安装. . 在设计文件中添加头文件XamlAnimatedGif的头 ...

  9. ArcGIS中加载无偏移谷歌卫星影像!奥维官方插件与ArcGIS协同互动

    前段时间奥维地图推出了一款与ArcGIS协同插件OmapArcMap 对于经常使用奥维的小伙伴来说无疑是一种福利 这个插件会让你大大提高工作效率 这个插件主要有两个功能 可以在ArcGIS中在线加载谷 ...

最新文章

  1. android 中的aidl
  2. 华为,15万大军孤独行走在世界上
  3. C/Cpp / #include
  4. 为什么要娶就娶电力女?!
  5. 动态分配方式计算学生成绩
  6. Android P 适配指南
  7. 卡爆mysql_荐 MySQL死锁和卡死分析
  8. 大连计算机类书店小结
  9. 背景学习模型 —》codebook算法
  10. 狂神说Redis学习笔记
  11. 【26】Superscalar和VLIW:如何让CPU的吞吐率超过1?
  12. 在家如何访问公司电脑文件和服务器的共享文件夹
  13. 一招秒杀常见网页基本排版布局
  14. air什么意思中文_air这个英文中文意思是什么?
  15. QGIS进行坐标转换
  16. Java Cache 缓存方案详解及代码-Ehcache
  17. mac电脑usb连接android手机,Android安卓设备连接Mac的方法
  18. git did not exit cleanly (exit code 1)
  19. WIn11——超低延迟远程桌面Parsec
  20. CPU占用率100%解决方法

热门文章

  1. 诗与远方:无题(八十一)
  2. 诗和远方:无题(五十二)- 写给认识的一个老姐的两只猫
  3. Android之使用VideoView组件播放一个简单的视频
  4. Jsp之建立JDBC-ODBC桥接器连接数据库
  5. Spark GraphX算法 - Connected Components(连通分支)算法
  6. Springboot项目结构浅析
  7. java程序运行时,数据的存储地!
  8. 【坐在马桶上看算法】啊哈算法13:零基础彻底弄懂“并查集“
  9. idea解决activiti(*.bpmn)文件乱码问题。
  10. Play framework logging设置