maven利用Profile构建不同环境的部署包

在开发的过程中,经常需要面对不同的运行环境(开发环境、测试环境、准发布环境、生产环境等等),在不同的环境中,相关的配置一般是不一样的,比如数据源配置、用户名密码配置、以及一些软件运行过程中的基本配置。

使用Maven来进行构建可以达到不同环境构建不同的部署包。在maven中实现多环境的构建可移植性需要使用profile,通过不同的环境激活不同的profile来达到构建的可移植性。

1、工程pom.xml的配置
/**
    这里定义了三个环境,local(本地环境)、dev(开发环境)、pro(生产环境),
    其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境
*/
<profiles>
  <profile>
    <id>local</id>
    <properties>
    //这里的env只是一个变量而已,名字可以由你任意来定,这个变量在后面有用到
      <env>local</env>
    </properties>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
  <profile>
    <id>dev</id>
    <properties>
      <env>dev</env>
    </properties>
  </profile>
  <profile>
    <id>pro</id>
    <properties>
      <env>pro</env>
    </properties>
  </profile>
</profiles>

<build>
<finalName>mqConsumer</finalName>
<filters>
    //${env}这个变量就是在前面定义过的
  <filter>src/main/resources/filters/${env}.properties</filter>
</filters>
<resources>
  <resource>
//对resources资源文件下的包含${}占位符的变量进行替换
	<directory>src/main/resources</directory>
	<filtering>true</filtering>
  </resource>
</resources>
</build>
2、各个环境的配置文件

local.properties

#activeMQ配置
brokerURL=tcp://192.168.1.55:61616

dev.properties

#activeMQ配置
brokerURL=tcp://115.29.173.120:61616

pro.properties

#activeMQ配置
brokerURL=failover://(tcp://115.29.173.121:61616,tcp://115.29.173.121:61617,
tcp://115.29.189.46:61616,tcp://115.29.189.46:61617)```

#### 3、待替换的配置文件(一般位于资源路径下)
config.propeties

#activeMQ brokerURL配置 brokerURL=${brokerURL}


#### 4、执行maven命令进行打包

//本地环境默认为激活模式,所以可不加-P参数 mvn clean package //dev环境 mvn clean package -Pdev //pro环境 mvn clean package -Ppro

//执行命令后,可以看到最后的部署包里面的配置文件配置就是对应环境需要的




ref:

[http://maven.apache.org/guides/introduction/introduction-to-profiles.html](http://maven.apache.org/guides/introduction/introduction-to-profiles.html)

转载于:https://my.oschina.net/hzchenyh/blog/734177

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值