前言
互联网后端服务通常会部署多个环境:开发环境、测试环境、预发布环境和生产环境。不同的环境通常有各自的环境配置,例如mysql服务器的地址、用户名密码,zookeeper的ip和端口等等。为了使打出的jar包能获取不同环境的配置,业界最常用的做法是使用maven的profile来区分不同环境。
代码示例
1. 在resources文件夹中为每个环境创建一个文件夹
└--resources└--dev└--test└--online
2. 修改pom.xml,增加如下内容
<profiles><profile><id>dev</id><properties><env>src/main/resources/dev</env></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>test</id><properties><env>src/main/resources/test</env></properties></profile><profile><id>online</id><properties><env>src/main/resources/online</env></properties></profile></profiles><build><resources><resource><directory>src/main/resources</directory><excludes><exclude>dev/**</exclude><exclude>test/**</exclude><exclude>online/**</exclude></excludes></resource><resource><directory>${env}</directory></resource></resources> </build>
3. 打包时增加-P参数指定profile
mvn clean package -Pdev
mvn clean package -Ptest
mvn clean package -Ponline
指定的profile对应的文夹中的配置文件将被放入jar包中。在启动JVM之后这些文件会在classpath下,可以被应用程序访问。
完整代码
https://github.com/gzllol/spr...