maven-resource-plugin的使用

本文介绍如何使用Maven-resources-plugin实现不同环境调用不同的YAML配置文件,通过配置profiles来区分开发、测试等环境,并自动将相应的YAML文件复制到资源目录。

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

在这篇文章中 maven配置多个.properties文件,我们利用maven实现了不同环境使用不同的properties文件,但是有时候properties文件并不太适合一些对象性配置,这时候不得不使用yaml文件,那么问题了,不同的环境怎么使用不同的yaml文件呢?

最简单的思路就是使用maven-resource-plugin,根据环境变量将文件拷贝到resource下面即可:

<plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>dev</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>src/main/resources</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/env/dev/yaml</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

完整的配置文件如下:

<profiles>

        <!-- 开发环境,默认为开发环境 -->
        <profile>
            <id>dev</id>
            <build>
                <filters>
                    <filter>
                        src/main/env/dev/biz.properties
                    </filter>
                </filters>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
                <plugins>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>dev</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>src/main/resources</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>src/main/env/dev/yaml</directory>
                                            <filtering>true</filtering>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>dev</name>
                </property>
            </activation>
        </profile>


        <profile>
            <id>testing</id>
            <build>
                <filters>
                    <filter>
                        src/main/env/testing/biz.properties
                    </filter>
                </filters>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
                <plugins>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>testing</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>src/main/resources</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>src/main/env/testing/yaml</directory>
                                            <filtering>true</filtering>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
</profiles>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值