我是靠谱客的博主 称心往事,最近开发中收集的这篇文章主要介绍maven打包spring boot时分离配置文件和依赖jar文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于spring boot的maven项目打成jar包时,分离配置文件和依赖jar包的事情,本来网上找找资料一会就能搞定的,但是搜索了好多资料都是基本只能够实现配置文件分离的,依赖jar还是没分离出来。最后通过瘦身jar相关的文档和maven plugins相关文档理解一些配置的信息,然后找到了一个方法,分享给大家,转载连接在最后。
1、需要到的maven plugins
spring-boot-maven-plugin:用于分离依赖jar
maven-jar-plugin:用力分离配置文件和指定main class
maven-dependency-plugin:拷贝依赖jar文件
注:网上很多资料都是只配置maven-jar-plugin和maven-dependency-plugin就说可以了,其实只是把依赖jar拷贝了一份出来放在lib文件夹下,打包的jar包中依然存在lib,没有真正分离。

拷贝lib
jar包
2、配置文件详解
分离后配置文件只需要放在jar包同级的config(加载优先级最高)目录下即可,依赖jar放在lib下,启动命令网上很多,我这里就不多说了

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <layout>ZIP</layout>
                    <!--去除在生产环境中不变的依赖,我此处把所有的依赖jar都去除-->
                    <excludeGroupIds>
                        org.springframework.boot,
                        org.springframework,
                        org.springframework.data
                        ......
                    </excludeGroupIds>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <useUniqueVersions>false</useUniqueVersions>
                            <!-- 配置spring boot applincation class的路径,即启动的main -->
                            <mainClass>com.wonders.insight.individual.PbankCloudInsightIndividualApplication</mainClass>
                        </manifest>
                    </archive>
                    <!--打包时排除配置文件,此处默认的路径是编译后classes路径,resources默认在classPath下,所以下面只用匹配文件即可-->
                    <excludes>
                        <exclude>*.properties</exclude>
                        <exclude>*.yml</exclude>
                        <exclude>*.xml</exclude>
                        <exclude>mapping/**</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <!-- 此处执行的作用是将依赖jar包拷贝一份存储在target/lib中
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <!-- 拷贝依赖jar存储位置,${project.build.directory}为Maven内置变量,缺省为target -->
                            <outputDirectory> ${project.build.directory}/lib </outputDirectory>
                            <!-- 此处还根据需求添加其他配置,如excludeTransitive、stripVersion等 -->
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3、参考文档
详细maven打包插件的配置释义:maven打包插件:maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin详解

jar瘦身参考:【SpringBoot】迭代发布下的Jar瘦身实践

最后

以上就是称心往事为你收集整理的maven打包spring boot时分离配置文件和依赖jar文件的全部内容,希望文章能够帮你解决maven打包spring boot时分离配置文件和依赖jar文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部