SpringBoot maven打包剥离依赖包和Resource
在一个springboot
项目中,依赖的jar
包往往会很多,会造成打出的工程jar
包体积比较大,如果只是在内网发布部署,还没什么问题,如果发布到到远程服务器上,每次都要上传大体积的jar
包,会比较花费时间,而里面的依赖包又很少会变更。那么我们就利用maven
提供的打包插件把依赖包、Resource以将代码分开。
1、首先在pom.xml
文件的build
->plugins
标签下增加剥离的配置
<!-- 打包第三方依赖jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- 打包resources -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<outputDirectory>${project.build.directory}/resources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 打包时忽略掉的配置文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<excludes>
<exclude>**/*.yml</exclude>
<exclude>**/*.xml</exclude>
</excludes>
</configuration>
</plugin>
2、增加打包代码的配置
<!-- springboot repackage -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 此处的版本根据自己的springboot版本修改 -->
<version>2.3.0.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
</plugin>
3、打包完成以后就会在项目的target
目录下生成两个文件夹lib
和resouces
,这两个文件夹分别存放的是依赖包和资源文件,还会生成一个项目的jar
包
4、当第三步的两个文件夹和工程jar
包在同样的目录下的时候,可以通过以下命令直接运行: java -jar -Dloader.path=resources,lib xxx.jar
上面这个命令里面,我看有的博客里是这样写的
java -jar -Dloader.path=.,resources,lib xxx.jar
但是这样的写法在我本机这样运行不起来,会提示找不到资源和依赖jar
包