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

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

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目录

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部