springboot打war包时将外部配置文件打入到war包内

需求

客户适配信创改造,想把war包外的配置文件都放入到war内,方便迁移war和部署

使用maven-assembly-plugins插件

打包代码改造如下。在项目的pom.xml文件中加入maven-assembly-plugins插件如下所示

XML 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <id>private-bhbank</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>src/main/resources/xxx.xml</descriptor>
                </descriptors>
                <finalName>api</finalName>
            </configuration>
        </execution>
    </executions>
</plugin>

然后在Resources目录下新建xxx.xml文件,内容如下所示

XML 复制代码
<assembly
        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>private-bhbank</id>
    <includeBaseDirectory>false</includeBaseDirectory>
    <formats>
        <format>war</format>
    </formats>
    <fileSets>
        <!--将目录复制到指定位置-->
        <fileSet>
            <directory>target/classes/</directory>
            <outputDirectory>WEB-INF/classes</outputDirectory>
        </fileSet>
        <!--将单文件复制到指定位置-->
        <fileSet>
            <directory>config/</directory>
            <excludes>
                <exclude>application.properties</exclude>
            </excludes>
            <outputDirectory>WEB-INF/classes/config</outputDirectory>
        </fileSet>
        <!--将多文件复制到指定位置-->
        <fileSet>
            <directory>customerConfig/config-xxx</directory>
            <includes>
                <include>config.properties</include>
                <include>application.properties</include>
            </includes>
            <outputDirectory>WEB-INF/classes/config</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>customerConfig/config-xxx</directory>
            <includes>
                <include>log4j2.xml</include>
            </includes>
            <outputDirectory>WEB-INF/classes</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>WEB-INF/lib</outputDirectory><!-- 将scope为runtime的依赖包打包到lib目录下。 -->
            <excludes>
                  <!--排除某些包-->
                <exclude>${包的groupId}:${包的artifactId}</exclude>
            </excludes>
        </dependencySet>
    </dependencySets>
</assembly>

按照上面改造后就可以在打包时将项目根目录的指定文件或目录复制到war包内的指定位置

相关推荐
VX:Fegn08954 小时前
计算机毕业设计|基于ssm + vue超市管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
徐徐同学4 小时前
cpolar为IT-Tools 解锁公网访问,远程开发再也不卡壳
java·开发语言·分布式
Mr.朱鹏5 小时前
Nginx路由转发案例实战
java·运维·spring boot·nginx·spring·intellij-idea·jetty
VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue酒店管理系统(源码+数据库+文档)
vue.js·spring boot·课程设计
白露与泡影6 小时前
2026版Java架构师面试题及答案整理汇总
java·开发语言
历程里程碑7 小时前
滑动窗口---- 无重复字符的最长子串
java·数据结构·c++·python·算法·leetcode·django
qq_229058017 小时前
docker中检测进程的内存使用量
java·docker·容器
我真的是大笨蛋7 小时前
InnoDB行级锁解析
java·数据库·sql·mysql·性能优化·数据库开发
钦拆大仁7 小时前
Java设计模式-单例模式
java·单例模式·设计模式
小手cool7 小时前
在保持数组中对应元素(包括负数和正数)各自组内顺序不变的情况下,交换数组中对应的负数和正数元素
java