Maven如何配置不同的环境文件

[size=large] 现在大公司的项目一般都会采取maven管理,因为大公司往往有多套环境配置,原来在的公司5套环境:
(1)开发
(2)测试
(3)沙箱
(4)灰度
(5)线上
当然这只是理论上的,搞这么多环境的目的只有一个,就是尽量防止或减少在生产环境出问题,所以往往你的项目或代码都要在每一套环境上
跑一遍确定是没有问题的。

小公司一般都有3套环境,开发,测试,线上,不同的环境我们的一些链接资源可能是不一样的,比如说,数据库的地址,某些集群的地址,比如ElasticSearch,Solr,Hadoop,Hbase,Zookeeper等 等,不同的环境的参数是不一样的,如果我们只有一个配置文件,那可能需要改来改去,而且还可能会出问题,maven提供了标准的目录配置,我们可以在src/main/filters下,放入我们的所有环境的配置,当然要约定一个暗号,通常是xxxx-dev{product,test}.properties等等,这里我们模拟3套环境做个demo:[/size]

[img]http://dl2.iteye.com/upload/attachment/0110/8858/71cd8fa7-7773-3bcd-8230-11e6f30c69a1.png[/img]
[size=large]上面的配置文件准备好后,我们还需要在pom文件里面,加入filter和profile配置:[/size]
   <build>
<!--指定下面的目录为资源文件-->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<!--设置自动替换-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>index-config.properties</include>
</includes>
<!--也可以用排除标签-->
<!--<excludes></excludes>-->
<!--开启过滤-->
<filtering>true</filtering>
</resource>
</resources>

</build>

[size=large]最后在加入[/size]
<profiles>
<!--默认激活开发配置,使用index-dev.properties来替换实际的文件key-->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>src/main/filters/index-dev.properties</filter>
</filters>
</build>
</profile>
<!-- 测试环境配置 -->
<profile>
<id>test</id>
<build>
<filters>
<filter>src/main/filters/index-test.properties</filter>
</filters>
</build>
</profile>
<!-- 生产环境配置 -->
<profile>
<id>product</id>
<build>
<filters>
<filter>src/main/filters/index-product.properties</filter>
</filters>
</build>
</profile>
</profiles>


[size=large]在实际打包的时候,可以指定以哪个环境的配置文件编译打包,例如:
以开发环境打包:mvn clean package -Pdev
以测试环境打包:mvn clean package -Ptest
以生产环境打包:mvn clean package -Pproduct

如何将maven项目依赖外部的jar打成一个单独的jar包呢?,非常简单,在pom文件中加入下面的一段代码:
[/size]
  <build> 
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>换成自己的主类</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值