Tool

maven多环境profile配置

2018-04-24  本文已影响5人  广西年轻人

在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发、测试、正式。

各个环境之间的参数各不相同,比如mysql、redis等不同环境的ip,密码不一样,若每个环境都手动替换环境很容易出错,而且麻烦,这里可以利用maven的profile功能切换环境。

1.在项目下pom.xml的project节点下创建了开发环境和线上环境的profile

<profiles>
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            <!--默认环境dev-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <!--测试环境-->
            <properties>
                <env>test</env>
            </properties>
        </profile>
        <profile>
            <!-- 线上环境-->
            <id>prd</id>
            <properties>
                <env>prd</env>
            </properties>
        </profile>
    </profiles>

2. 在resources目录下建立不同环境的配置文件的文件夹

WX20180424-180157@2x.png

3.配置环境

<build>
        <finalName>springmvc2</finalName>
        <resources>
            <resource>
                <directory>src/main/resources/${env}</directory>
            </resource>
        </resources>
    </build>

4.使用

1524564314807.jpg

最终pom

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            <!--默认环境dev-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <!--测试环境-->
            <properties>
                <env>test</env>
            </properties>
        </profile>
        <profile>
            <!-- 线上环境-->
            <id>prd</id>
            <properties>
                <env>prd</env>
            </properties>
        </profile>
    </profiles>

    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <name>xxx-xxx</name>
    <groupId>xxx.xxx</groupId>
    <artifactId>xxx-xxx</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>

    </properties>
    <dependencies>

    </dependencies>
    <build>
        <finalName>qc-web</finalName>
        <!--环境变量-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>dev/*</exclude>
                    <exclude>prd/*</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/${env}</directory>
            </resource>
        </resources>

    </build>
</project>

maven命令指定环境:

配置完毕,使用  mvn package -P{profile} 命令打包war
example:     
1、mvn package               没有指定profile,默认为dev
2、mvn package -Ptest -Dmaven.test.skip=true   指定profile为test并跳过测试
上一篇 下一篇

猜你喜欢

热点阅读