几种打包方式如下:
- maven-dependency-plugin 复制依赖 jar 到 lib 目录,maven-jar-plugin 指定依赖 lib 目录,同时提供 lib 目录和 jar 才能运行
- maven-assembly-plugin、maven-shade-plugin 生成唯一一个 jar 包。jar 目录结构由 class文件 全类名决定 (逻辑结构),所以全部依赖 jar 会拆包,然后根据逻辑结构重组后打包。缺点是全部依赖 jar 拆包后,难免有重名、冲突等,风险不可控。
- onejar 生成唯一一个 jar ,不拆包,类加载器做了封装,类似于 spring boot打包方式。