使用gitee项目mybatis-plus-samples,其中的mybatis-plus-sample-assembly模块,进行打包,将打好的包复制到任意位置(不在当前位置即可,当前位置可以执行)
执行Java -jar报错如下
java -jar mybatis-plus-sample-assembly-0.0.1-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.baomidou.mybatisplus.samples.assembly.AssemblyApplication.main(AssemblyApplication.java:16)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
将pom文件中plugins标签改成如下即可
<plugins>
<!--3.3.2版本以下不支持spring-boot-maven-plugin打包-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
错误原因:只打包了源代码,没有打包依赖
对比jar大小可以看到
修正前11KB,修正后24.5MB
修正前target目录如下,可以看到lib里面是依赖,所以在当前位置可以运行jar,换个位置就找不到依赖了
修正后target目录如下