文章目录

  • 前言
  • 思路
  • 解析
  • maven生命周期
  • 借鉴文章

前言

最近在写maven插件,遇到一个问题是classload不能加载依赖的类,比如说引入jar的类。
我之前怎么使用的呢?就用网上常见的mavenproject去获取路径,然后classload进行加载进去,这种其实只能加载本项目的类。那如果加载依赖的项目的类呢?

思路

请教了隔壁老哥,他说maven打包之后会有一棵树结构,你只要解析这棵树,就能加载出来了。这颗树哪里来呢,就是打包之后jar,解压之后就有。

这里借鉴下其他博客的图

解析

Boot-INF 是编译之后的class类
META-INF 是一些配置,比如指向哪些类是启动类
spring-load 是加载器,它里面会有JarLauncher,WarLauncher

实现方式
就是重写JarLauncher,将jar路径写进入,然后使用URLClassload根据文件url创建加载器,这样就能加载依赖的类了。

maven生命周期


如果你要加载这些类,需要在install阶段,因为package是在打包,install是安装到本地

借鉴文章

  • Jar包的启动实现还不会?看这篇SpringBoot源码分析让你彻底搞懂

maven插件加载依赖的类相关推荐

  1. idea2020更新了maven自动加载依赖

    maven 自动加载依赖 当idea推出2020 版本以后 ,取消了maven 原本的自动加载依赖的设置,那么新版如何加载依赖呢 右上角m 小图标就是加载依赖的按钮 当 鼠标翻上去以后 会显示快捷键c ...

  2. 解决IDEA中Maven加载依赖包慢的问题

    解决IDEA中Maven加载依赖包慢的问题 参考文章: (1)解决IDEA中Maven加载依赖包慢的问题 (2)https://www.cnblogs.com/ouym/p/6106450.html ...

  3. maven加载依赖时总是Updating [central] https://repo.maven.apache.org/maven2

    最近在使用maven添加依赖的时候,动不动idea就会从Updating [central] https://repo.maven.apache.org/maven2开始下载1.23G的文件.即使在m ...

  4. Android 插件化原理解析——插件加载机制

    上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务:通过Hook AMS和拦截ActivityThread中H类对 ...

  5. vscode安装swift插件_使用 Webpack 优化 VS Code 插件加载性能

    Webpack 这一 JS 模块打包神器相信大家都不陌生了.由于 VS Code 插件大部分也都是 JS/TS 代码 + 依赖库的形式,因此也可以使用 Webpack 打包,优化性能. 经过实测,经过 ...

  6. Java在加载阶段会加载依赖吗,Java程序编译和运行过程之 一个对象的生命之旅(类加载和类加载器)...

    Java程序从创建到运行要经过两个大步骤 1:源文件(.java)由编译器编译成字节码ByteCode(.class) 2:字节码由Java虚拟机解释并运行 源文件编译成字节码,主要分成两个部分: 1 ...

  7. 如何让插件加载到Qt Designer

    本文介绍的是如何让插件加载到Qt Designer,插件是一种遵循一定规范的应用程序接口编写出来的程序,对于Qt Designer不多做介绍了,先看内容吧. 本文介绍的是如何使自定义的插件加载到Qt ...

  8. datax底层原理_Datax 插件加载原理

    Datax 插件加载原理 插件类型 Datax有好几种类型的插件,每个插件都有不同的作用. reader, 读插件.Reader就是属于这种类型的 writer, 写插件.Writer就是属于这种类型 ...

  9. ArcGIS\QGIS无插件加载(无偏移)MapBox高清影像图

    喜欢就关注我们吧! 首先介绍一下MapBOX. Mapbox 是用于移动和 Web 应用程序的位置数据平台.用户可以使用Mapbox Studio创建一个自定义.交互式的地图,然后可以将这些自定义的地 ...

最新文章

  1. 重磅丨2018年中国人工智能行业研究报告(77页PPT)
  2. 照片你随便拍,「光影」我任意调,MIT谷歌新研究,器材党老法师看了会沉默...
  3. SQL 2014新特性- Delayed durability
  4. Caffe、TensorFlow、MXnet三库对比
  5. 显示内容长时,显示部分内容,鼠标移入显示全部内容
  6. SQL中读取Excel 以及 bpc语言
  7. 第四章 数据的概括性度量
  8. easyui汉化啊!
  9. PDF格式分析(六十五) Text 文字——字体数据结构
  10. 【U盘量产】你的U盘坏了吗
  11. HashMap和TreeMap排序
  12. 【信源编码技术】实验1-浊音清音爆破音的时域及频域特性分析
  13. POE交换机和普通交换机哪里不同
  14. 程序员木讷?我反手就是一串代码把姑娘撩到幸福地流泪
  15. 苹果开发者账号开启双重认证步骤
  16. OpenGL VBO, PBO与FBO
  17. android 游戏循环 帧速,适用于Android的Firemonkey游戏循环
  18. 性别分为男子组和女子组
  19. Zotero BookxNote
  20. 4台机器完全分布式安装hadoop,bigbrother的补充

热门文章

  1. 用ANSYS画矩形_【图片】日系楼梯怎么画?教你用一点透视画日系楼梯!【猫爪绘画吧】...
  2. 盘点李念演艺之路 《蜗居》过后未来大猜想(图)
  3. java并发编程之 并发问题及解决方法
  4. 618大促狂欢后,面对海量退货等售后问题商家该如何快速处理
  5. 谷歌中国至今没拿到新 ICP 证,G.cn 7月1日关门大吉?
  6. 2018年贝壳网校招(秋招)算法笔试编程题
  7. 微信小程序跳转至医保
  8. 贷款那些事之还款方式平息法(五)
  9. mysql安装与修改初始密码
  10. RESTful风格是什么