maven将项目resource文件夹下的配置文件一同打包的解决方案

2,733 阅读2分钟

这是我参与更文挑战的第 9 天,活动详情查看:更文挑战

前言

开发过程中,每到一定阶段我们会将项目打包部署到测试环境进行测试,以便迭代测试项目每个版本的功能性问题。很多时候,难免会因为一些配置问题需要重新打包,此时若每次更新配置都重新打包的话,难免会影响测试的效率和进程,所以有时会将配置文件一并打包,然后发给运维人员,后期部署测试环境时若因为配置问题仅仅修改resource下的配置文件即可。本文主要介绍下如何将项目中resource整个目录打包到target目录下的方案。

解决方案

1.pom文件中代码配置

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.*</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
    <plugins>
        <!-- 复制资源文件 -->
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <!-- 资源文件输出目录 -->
                        <outputDirectory>${project.build.directory}/resources</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.2.2.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2.利用idea软件的maven属性进行打包,直接点击package即可,打包后的效果图如下:

微信图片_20210609220140.png

至此,打包资源文件夹的功能已实现。但是有时候项目中使用的可能就是一个application.properties文件,如果仅仅是单个文件的话,这样配置难免有些麻烦,其实还可以使用springboot的特性直接在项目的启动类上引入要配置的文件即可,此时我们在项目中src同级目录创建一个config文件夹,然后将配置文件放进去即可。项目部署时,将jar包和config文件放在服务器的同一个目录下即可,配置变化直接修改config下的配置文件,然后重启jar包即可。

具体代码和目录结构如下:

@PropertySource(value = "file:./config/application.yml")
@SpringBootApplication(scanBasePackages={"com.xx.xxxx"}) //com.xx.xxxx对应项目中实际路径,不要照搬,根据具体情况填写
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
		System.out.println(">>>>>>>>>>>>>>>Application启动成功!");
	}
}

项目结构截图:

微信图片_20210609221218.png

好了,这篇文章对你有帮助吗,关注小编后期为大家分享更多技术和开发方面的问题。如果大家有更好的解决方案,也可以给我留言,一起学习和交流。