Maven Profile 环境隔离

作用

快速切换不同的配置环境,比如开发时是连接的本地数据库,发布线上时是另外的数据库,每次编译打包时都要修该配置文件比较麻烦,这时就可以使用环境隔离了。

 

配置

本地(Local), 开发(Dev), 测试(Beta), 线上(Prod)

pom.xml 配置

<build>
    <!--按照激活的环境加载资源-->
    <resources>
        <resource><!--私有配置目录,用变量名来区分-->
            <directory>src/main/resources.${deploy.type}</directory>
            <excludes><!--排除jsp文件-->
                <exclude>*.jsp</exclude>
            </excludes>
            <filtering>true</filtering><!--开启过滤,用指定的参数替换 directory 下的文件中的参数(eg. ${name})-->
        </resource>
        <resource><!--公共配置目录-->
            <directory>${project.basedir}/src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.yml</include>
                <include>**/*.properties</include>
                <include>static/**</include>
                <include>templates/**</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

<profiles>
    <profile>
        <id>dev</id>
        <activation><!--默认环境-->
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties><!--对应变量名-->
            <deploy.type>dev</deploy.type>
            <boot-main>org.webapp.MyWebApplication</boot-main>
            <package-name>${project.artifactId}-${project.version}</package-name>
        </properties>
    </profile>
    <profile>
        <id>beta</id>
        <properties>
            <deploy.type>beta</deploy.type>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <deploy.type>prod</deploy.type>
        </properties>
    </profile>
</profiles>

对应的工程目录结构

编译打包

#不编译测试用例类,打包dev环境,改变-P的参数即可切换环境
mvn clean package -Dmaven.test.skip=true -Pdev

 


http://maven.apache.org/plugins/maven-resources-plugin/index.html

posted @ 2019-05-06 09:08  江湖小小白  阅读(566)  评论(0编辑  收藏  举报