使用maven可以对不同环境进行打包部署:如 mvn clean package -P development
其中development是环境的变量ID
借助maven提供的profile功能,通过不同的环境激活不同的profile来达到构建的可移植性
其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境。
同时每个profile还定义了两个属性,其中profiles.active表示被激活的profile的名称,deploy.url表示发布服务器的地址。
另外host和port分别是发布服务器的主机地址和端口号。
公用的配置直接放到src/main/resources目录下,开发环境、测试环境、生产环境的配置文件分别放到src/main/resources目录下的development、test、production三个子目录中
在pom中的build节点下,配置资源文件的位置
<build> <resources> <resource> <directory>src/main/resources</directory> <!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 --> <excludes> <exclude>test/*</exclude> <exclude>production/*</exclude> <exclude>development/*</exclude> </excludes> </resource> <resource> <directory>src/main/resources/${profiles.active}</directory> </resource> </resources> </build>首先第一个资源文件位置src/main/resources需要排队提各个环境的配置文件,各个环境的配置我们在第二个<resource>节点中通过前面在profile中配置的profiles.active属性来指定。即src/main/resources/${profiles.active}。这样在激活指定的profile时,会加载指定目录下的配置文件,如当前激活的是production profile,那么这个资源目录就是src/main/resources/production。这样就达到了不同环境加载不同配置的目的。
其中发布的<url>节点就是在前面profile中配置的deploy.url属性,这样不同的环境就指定了不同的发布地址。<server>和<path>节点分别是发布服务器的用户配置的id以及应用的context名称。
运行maven命令时指定不同的profile
mvn clean package -P production即构建出生产环境需要的war包
mvn tomcat:redeploy -P test 即发布到测试环境
转载于:https://www.cnblogs.com/xiaoQ0725/p/8057203.html
相关资源:Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包