先正常打包,查看jar包中的BOOT-INF/lib,解压出来
修改项目pom文件加上如下配置,记得修改项目启动类
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
//你的项目启动类
<mainClass>com.test.Application</mainClass>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
然后执行package打包,此时打包出来的jar将会很小
放一起执行即可
java -Dloader.path=.\lib -jar ./web.jar
一个坑 :使用mvn dependency:copy-dependencies -DoutputDirectory=D:\temp\lib -DincludeScope=runtime 进行下载依赖jar包时会不全导致启动失败
还有一个坑:使用powershell和idea的terminal运行带参数的java -Dloader.path=.\lib -jar ./web.jar时需要把参数用引号引起来如java '-Dloader.path=.\lib' -jar ./web.jar,cmd则不需要