maven学习系列8----将resources目录下的文件打包到jar包外

本文介绍如何使用Maven配置及maven-resources-plugin插件,将项目中的资源文件(如XML、YAML等)放置于最终生成的jar包外部,方便用户在不重新打包的情况下修改这些文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven默认情况下会把src/main/resources下的文件和class文件一起打到jar包内部,但是有很多场景下都需要把resources下的文件打包到jar包外面,这样修改resources目录下的文件就不需要重新打jar

假设目录结构如下,resources目录下有三个文件


默认打好的jar包如下,即resources下的文件打到了jar包里面



如果想resources目录下的部分或者全部文件不打到jar包内部,可以使用manen下面的配置

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>*.txt</include>
                </includes>
                <excludes>
                    <exclude>*.xml</exclude>
                    <exclude>*.yaml</exclude>
                </excludes>
            </resource>
        </resources>
    </build>

这样a.xml和b.yaml就不会打到jar包中了


maven还有一个maven-resources-plugin可以实现,在打包的时候把resources目录下的文件拷贝到指定的目录下,这样就不需要用户自己去拷贝了,

         <plugins>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/conf</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>

                    </execution>
                </executions>
            </plugin>
        </plugins>

编译好之后,会在target目录下生成conf目录并且把resources目录下的所有文件都自动拷贝到target/conf/目录下,如下



联合上一章中的maven配置,就可以实现把工程中对外的依赖(依赖的jar包,依赖的resources文件)打包到jar外面,例如把依赖的jar包打包到lib目录下,把依赖的resources文件打包到conf目录


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值