Maven多环境配置方法
Maven多环境配置方法
木易火山 发表于2个月前
Maven多环境配置方法
  • 发表于 2个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

开发环境、测试环境、生产环境…… 在开发中,我们需要面对各种各样的环境,并且,各个环境的参数和配置各不相同,比如数据库连接,服务器配置等。为了解决这个问题,Maven提供了多种方案,我在项目中采用的是Profile+资源过滤的方案。

第一步:将环境变化影响的配置项用Maven属性取代

比如Mysql的连接属性可能在不同环境下有变化,因此用Maven属性取代:

connection.username = ${connection.username}
connection.password =${connection.password}
connection.driver_class_name =com.mysql.jdbc.Driver
connection.url = ${connection.url}

第二步:在POM中声明为不同的环境声明Profile

Profile能够在构建的时候修改POM的一个子集或者添加额外的配置元素,用户可以通过命令行、settings文件、系统属性、操作系统环境、文件存在、默认激活等多种方式激活profile。

Profile可以通过pom.xml(只在当前项目有效)和setting.xml(本机所有项目有效)两种方式声明。

如下,我们在pom.xml中声明了三种环境,开发,测试和生产,默认使用开发环境。根据下面的配置,maven会根据profile中的[running.env]属性加载不同的属性配置文件,配置文件的路径是src/main/resources/config_${running.env}.properties

<profiles>
    <!-- 开发环境,默认激活 -->
    <profile>
        <id>dev</id>
        <properties>
            <running.env>dev</running.env>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault><!-- 这里表示默认环境 -->
        </activation>
    </profile>
    <!-- 测试环境 -->
    <profile>
        <id>test</id>
        <properties>
            <running.env>test</running.env>
        </properties>
    </profile>
    <!-- 生产环境 -->
    <profile>
        <id>prd</id>
        <properties>
            <running.env>prd</running.env>
        </properties>
    </profile>
</profiles>

<build>
    <finalName>sunac_quota</finalName>
    <plugins>
        <!-- Maven插件 配置 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${plugin.maven-compiler}</version>
            <configuration>
                <source>${project.build.jdk}</source>
                <target>${project.build.jdk}</target>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    <filters>
        <filter>src/main/resources/config_${running.env}.properties</filter>
    </filters>
</build>

第三步:为不同环境增加配置文件

我们将不同环境下需要覆盖的配置项都写在这个环境对应的配置文件中,比如config_dev.properties中就是所有开发环境下需要覆盖的配置项,如下图所示:

connection.username = root
connection.password =
mongourl = localhost
connection.url = jdbc:mysql://localhost:3306/sunac_quota?useUnicode=true&characterEncoding=UTF-8

第四步:打包

最后使用mvn package -P dev,mvn package -P test,mvn package -P prd就可以分别打包开发环境、测试环境和生成环境的war包了

标签: maven profile
共有 人打赏支持
粉丝 3
博文 16
码字总数 8873
×
木易火山
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: