博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过maven profile 打包指定环境配置
阅读量:5324 次
发布时间:2019-06-14

本文共 1850 字,大约阅读时间需要 6 分钟。

背景

最近换了个新公司接手了一个老项目,然后比较坑的是这个公司的项目都没有没有做多环境打包配置,每次发布一个环境都要手动的去修改配置文件。今天正好有空就来配置下。

解决这个问题的方式有很多,我这里挑选了一个个人比较喜欢的方案,通过 maven profile 打包的时候按照部署环境打包不同的配置,下面说下具体的操作

配置不同环境的配置文件

建立对应的环境目录,我这里有三个环境分别是,dev/test/pro 对应 开发/测试/生产。建好目录后将相应的配置文件放到对应的环境目录中

图片

配置 pom.xml 设置 profile

这里通过 activeByDefault 将开发环境设置为默认环境。如果你是用 idea 开发的话,在右侧 maven projects > Profiles 可以勾选对应的环境。

dev
dev
true
test
test
pro
pro

 

打包时根据环境选择配置目录

这个项目比较坑,他把配置文件放到了webapps/config下面。所以这里打包排除 dev/test/pro 这三个目录时候,不能使用exclude去排除,在尝试用 warSourceExcludes 可以成功。之前还试过 packagingExcludes 也没有生效,查了下资料发现 packagingExcludes maven 主要是用来过滤 jar 包的。

org.apache.maven.plugins
maven-war-plugin
3.1.0
config/test/**,config/pro/**,config/dev/**
src/main/webapp/config/${profiles.active}
config
true

 

最后根据环境打包

## 开发环境打包mvn clean package -P dev## 测试环境打包mvn clean package -P test## 生产环境打包mvn clean package -P pro

 

执行完后发现 dev 目录下的文件已经打包到 config下

图片

启动项目

我在启动项目的时候,死活启动不了。后来对比了前后的 target 目录发现子项目的 jar 包有些差异,经过多次尝试后。将所有子项目下 target 项目重新删除 install 最后成功启动。

转载于:https://www.cnblogs.com/lionsblog/p/10214751.html

你可能感兴趣的文章
给我妹妹的一封信
查看>>
oracle防止sql注入
查看>>
bzoj1070题解
查看>>
Squid代理服务器的安装与配置
查看>>
php面试题之一——HTML+CSS(基础部分)
查看>>
【TreeSet:请按照姓名的长度排序】
查看>>
有趣的Linux命令行效果
查看>>
UIButton使用方法汇总
查看>>
ECMAScript中关于如何获取this的定义
查看>>
C语言的字符测试函数
查看>>
【BZOJ1004】【HNOI2008】Cards 群论 置换 burnside引理 背包DP
查看>>
Java你可能不知道的事系列(1)
查看>>
vim 编辑器 常用的设置
查看>>
Age estimation using transfer learning
查看>>
(hdu) 4857 逃生 (拓扑排序+优先队列)
查看>>
maven-assembly-plugin 自定义打包
查看>>
【转载】Markdown使用笔记
查看>>
【C++】输入多行数字到数组
查看>>
Uva 11997 多路归并
查看>>
Atcoder 073E - Ball Coloring
查看>>