SpringBoot maven打包剥离依赖包和Resource

原创
2021/07/09 16:40
阅读数 1.4K

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目录下生成两个文件夹libresouces,这两个文件夹分别存放的是依赖包和资源文件,还会生成一个项目的jar

4、当第三步的两个文件夹和工程jar包在同样的目录下的时候,可以通过以下命令直接运行: java -jar -Dloader.path=resources,lib xxx.jar

上面这个命令里面,我看有的博客里是这样写的 java -jar -Dloader.path=.,resources,lib xxx.jar 但是这样的写法在我本机这样运行不起来,会提示找不到资源和依赖jar

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部