maven profiles多环境参数切换打包

1、profiles解决的问题

一般项目开发中,测试环境,开发环境,生产环境的参数都有所不同,甚至还有的系统会有演示环境,所以我们要根据不同环境下进行灵活地项目打包,profiles很好的解决了多环境参数切换的问题。

2、项目结构

依数据库配置为例,在不同配置文件里面有dev、test、prod三种不同的数据库参数配置
开发环境链接的数据库是ssm开发环境链接的数据库是ssm,里面的empname是张三在这里插入图片描述开发环境链接的数据库是ssm1,里面的empname是李四在这里插入图片描述测试环境连接的是ssm2,里面的emp那么是王五

3、POM文件

pom 文件要配置和上面对应的dev、test、prod三个环境对应的三个节点,activeByDefault为true则说明是默认激活的节点

 <profiles>
        <profile>
            <!-- 开发环境 -->
            <id>dev</id>
            <properties>
                <environment>dev</environment><!-- 节点名字dev是自己随意取的 -->
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
            </activation>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <environment>test</environment>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境 -->
            <id>prod</id>
            <properties>
                <environment>prod</environment>
            </properties>
        </profile>
    </profiles>

拦截器的作用 filtering 为了在application.xml配置文件中进行动态的获取不同环境的对应的environment的名字${environment}

    <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <excludes><!--除去这个配置-->
                    <exclude>dev/**</exclude>
                    <exclude>test/**</exclude>
                    <exclude>prod/**</exclude>
                </excludes>
                <filtering>true</filtering><!--增加此项,方便配置文件获取属性,比如 <context:property-placeholder  location="classpath:${environment}/dbconfig.properties"/>-->
            </resource>
            <resource>
            <!--整理增加需要切换的环境配置,打包到resources-->
                <directory>src/main/resources/${environment}</directory>
                <targetPath>${environment}</targetPath>
            </resource>
        </resources>
<!--加载数据库配置文件-->
    <context:property-placeholder  location="classpath:${environment}/dbconfig.properties"/>
    <bean id="PooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
        <property name="driverClass" value="${jdbc.driverClass}"></property>
        <property name="user" value="${jdbc.user}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

4、运行测试

1、 打包方式一

在这里插入图片描述通过勾选不同环境的profiles进行,clean package

2、命令打包方式

mvn clean package -Pdev
mvn clean package -Ptest
mvn clean package -Pprod

潦潦此案,欢迎指正补充!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值