使用maven的profile区分本地环境和线上环境

本文介绍如何使用Maven的profile特性进行多环境开发,通过配置区分本地与线上数据库,实现不同环境下的打包与部署。具体步骤包括在pom.xml中设置profile,根据不同环境加载对应的properties文件,以及在打包时指定环境参数。

使用maven的profile区分本地环境和线上环境

多环境开发,使用maven-profile,就可以在打包的时候通过参数的调整,最终打的包也不同。

以区分本地数据库和线上数据库为例
比如测试环境,用的是本地测试数据库;生产环境用的是线上生产库
针对不同库的url,userName,password,就可以配两套,通过profile区分,然后打包的时候就可以区分了

具体使用:

1.在pom.xml中,配置如下:

<project XXXXXXXX>
	......其他配置
	<dependencies>
	</dependencies>
	<profiles>
		<profile>
			<id>local</id>
			<properties>
				<profiles.active>local</profiles.active>
			</properties>
		</profile>

		<profile>
			<id>production</id>
			<properties>
				<profiles.active>production</profiles.active>
			</properties>
		</profile>
	</profiles>
</project>

2.在配置加载properties文件的时候,做区分

    <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:application-${profiles.active}.properties</value>
            </list>
        </property>
    </bean>

3. 新建两个properties文件,分别配置:

    application-local.properties(以后本地配置的信息都在这里)
	mysql.url=本地url;
	mysql.userName=admain;
	mysql.password=admain;
    application-production.properties(以后线上配置的信息都在这里)
	mysql.url=线上url;
	mysql.userName=线上用户名;
	mysql.password=线上密码;
这里的local和production与pom.xml中的profiles.active标签的值一一对应

4.配置dataSource

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	<property name="url" value="${mysql.url}" />
	<property name="username" value="${mysql.user}" />
	<property name="password" value="${mysql.password}" />	
</bean>		

5.打包

使用maven package -P local打包,那么最终数据源就会使用本地的
使用maven package -P production打包,那么最终数据源就会使用线上的
这里的local和production与pom.xml中的id标签的值一一对应

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值