springboot项目jar包瘦身,打包时不打依赖包
在pom文件的
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
的<configuration>
标签内加上
<!-- 不打依赖包 -->
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
然后再加
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 拷贝依赖包的路径 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
用来拷贝依赖包于指定目录,以上路径就是下图的lib目录下
然后执行打包命令
mvn clean package -Dmaven.test.skip=true
启动命令为
java -jar -Djava.ext.dirs=./lib test.jar
其中./lib
指的是依赖包路径
出现的问题
当数据库的账号密码加密时,会启动失败,报PBEWithMD5AndDES SecretKeyFactory not available
异常,是因为解密需要用到jdk内的jdk1.8.0_241\jre\lib\ext/sunjce_provider.jar
的jar包,如果不指定-Djava.ext.dirs
时默认的就是jdk目录下,现在指定,就找不到这个包了,所以将该包放到./lib
下就可以了