文章目录序言构想分析maven生命周期参考文章
前言
最近编写maven插件时,遇到的问题是无法加载classload依赖的类,例如部署了jar的类。
我以前是怎么用的? 在网上常见的“mavenproject”中获取路径,然后在类加载中加载。 这样的实际上只能加载本项目的类。 如果加载依赖项目的类呢?
我把想法告诉了隔壁哥哥,他说maven打包后有木头结构。 你解析了这棵树,就可以加载了。 这棵树来自哪里,就在打包后,jar,解冻后。
这里参考其他博客的图
分析Boot-INF是编译后的class类
META-INF是指哪些类是启动类等设置
spring-load是加载器,其中包含JarLauncher和WarLauncher
实现方式
可以重写JarLauncher,写入jar路径,然后使用urlClassload从文件URL创建加载器,以加载依赖的类。
maven生命周期
加载这些类时,package是打包的,安装是本地安装的,因此必须处于安装阶段
还不能参考文章启动和实现Jar包吗? 看了这个SpringBoot源代码的分析,让你彻底理解