filter动态参数 maven_多环境下Maven项目的管理
- 前言:对于一个项目,开发和生产环境之间会使用不同的配置文件,最简单的例子就是数据库连接池的配置了。当然,可以在打包上线前对配置文件进行替换,不过这也太low了吧。
简单的pom.xml中的配置内容
- 比如我们在maven项目中引入了内嵌式的tomcat插件(当然打包方式是要war包),如下代码
<!--在build标签中--><plugins> <plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!-- 指定端口 --><port>8821</port><!-- 请求路径 --><path>/</path></configuration></plugin><plugins>
指定了端口号是8821,启动项目后(在idea右边的maven project),就可以使用8821端口访问。
8821是我们开发的端口,如果我们想打包上传到服务器,然后就修改这个端口为8891。
- 首先在pom.xml使用properties标签来定义端口号
- 然后就创建多个环境,多个环境对tomcat_port这个属性进行定义
<!--和build平级--><profiles><profile><!--开发环境,这个id就是名称--><id>dev</id><properties><!--这个标签就是定义你要设定的properties中的属性--><tomcat_port>8821</tomcat_port></properties></profile><profile><!--生产环境--><id>pro</id><properties><tomcat_port>8821</tomcat_port></properties></profile></profiles>
- 然后修改我们的tomcat7系列的maven命令,在后边添加参数:
-P 环境id
,在idea中,右键这个maven命令,就可以设置了
设置完后,点击运行,
除了tomcat:run 外,其他的maven命令,如:
package -P dev
install -P pro
这些都是可以的。
不同环境下使用不同的数据库配置文件
和上边的方法类似,不同的是它会引入项目中的properties配置文件 * 首先,src/main/resources下创建dbprops文件夹,在这个文件夹下创建一个db_dev.properties,内容如下:
#这个env前缀可以自定义,也可以不用
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/tb_dev?characterEncoding=utf-8
env.jdbc.username=dev
env.jdbc.password=dev
也创建一个db_pro.properties
#这个env前缀可以自定义,也可以不用
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/tb_pro?characterEncoding=utf-8
env.jdbc.username=pro
env.jdbc.password=pro
- 然后,修改我们src/main/resources下的db.properties配置文件,这个配置文件就是我们之前的数据库连接配置文件(因为datasource中指定的路径就是这个配置文件)
#之前写的是确定的地址,这回就使用变量
jdbc.driver=${env.jdbc.driver}
jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}
- 在pom.xml中添加属性
<properties><!--这个db_env是自定义的,随便起--><db_env>dev</db_env></properties>
- 在pom.xml中定义profile
<profiles><profile><!--环境名--><id>dev</id><properties><!--这个名要和之前定义的db_dev.properties中的dev相同,下边会看到拼接--><db_env>dev</db_env></properties></profile> <profile><id>pro</id><properties><db_env>pro</db_env></properties></profile></profiles>
- 在build标签中添加一个filters和resource指令
<filters><filter>src/main/resources/dbprops/db_${db_env}.properties</filter></filters><resources><resource><!--这是拦截这个目录下的配置文件,进行处理--><directory>src/main/resources</directory><filtering>true</filtering></resource> </resources>
好了,我们这使用指定打包
package -P pro
然后用触压生成的war包,打开WEB-INFclassesdb.properties文件可以看到
欢迎关注我的微信公众号,获取更多文章内容
filter动态参数 maven_多环境下Maven项目的管理相关推荐
- 解决eclipse环境下maven项目tomcat启动,未加载到项目的问题
解决eclipse环境下maven项目tomcat启动,未加载到项目的问题 参考文章: (1)解决eclipse环境下maven项目tomcat启动,未加载到项目的问题 (2)https://www. ...
- filter动态参数 maven_使用Profile和Resources Filter隔离测试环境
Maven能够帮我们很好的管理测试,我们可以在src/test/java 和 src/test/resources 下面使用JUnit或者TestNG 编写单元测试和集成测试,然后在命令行运行 mvn ...
- 使用Maven前夕(Maven项目架构管理工具、配置环境变量、阿里云镜像、本地仓库)
Maven Maven项目架构管理工具 目前用来就是方便导入jar包! Maven的核心思想:预定大于配置(有约束不要去违反) 需要按照Maven规范来编写Java代码 Maven官网:https:/ ...
- IDEA下maven项目Plugins和Dependencies红线
IDEA下maven项目Plugins和Dependencies红线 文章原网址 pom.xml配置完,Reimport后,发现Plugins和Dependencies出错,有红色波浪线 (1)对于P ...
- iis服务器部署项目,IIS环境下部署项目的详细教程
分享IIS环境下部署项目的详细教程 1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后 找到World Wide Web Services,确保选中 ...
- asp项目如何部署到服务器,IIS环境下部署项目的详细教程
分享IIS环境下部署项目的详细教程 1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后,点击"Turn Windows features ...
- idea下Maven项目module不加粗显示,maven project中不显示module
记录一下idea下Maven项目module不加粗显示,maven project中不显示module,启动项目无法编译的问题 最近记性不好,来记录一下,每次搜百度都要好久.... 两种情况: 1. ...
- java maven 项目依赖管理 简介
目录 一.简单的小问题? 二.maven到底是什么? 三.maven的安装 四.仓库的概念 五.使用命令行管理maven项目 六.使用Myeclipse创建maven自定义项目 七.pom.xml的依 ...
- Maven项目依赖管理 学习笔记
本学习笔记根据慕课视频[Maven项目依赖管理]摘录,主要学习maven的使用方式,从理念到实践.基础到应用,掌握基于maven管理java项目的方式. 目录 第一章 Maven概述 Maven简介 ...
- Windows环境下maven 安装与环境变量配置
Maven是一个项目管理的Java 工具,在JavaEE中,我们可以使用Maven方便地管理团队合作的项目,现在我们在学习JavaEE框架,使用Maven可以管理类库,有效方便地供团队中的其他人员使用 ...
最新文章
- 地图样式自定义_干货在线 | ArcGIS中定义图框样式
- MxGraph从入门到精通之2:HelloWorld程序解析
- android消息机制
- 怎么取html网页中的样式,从建站到拿站 -- HTML和CSS基础
- 前端学习(2921):vue的事件
- Bitfinex推出ETH 2.0质押服务
- 换个角度想问题,不再孤单
- 抖音很火的计算机音乐,抖音最近很火的几首背景音乐(BGM),推荐给大家很好听...
- R 语言实战-Part 3 笔记
- 鸿蒙os拍摄功能,华为5G巅峰之作:屏下摄像头+鸿蒙OS+徕卡镜头 这才是华为的实力...
- 【财务】FMS财务管理系统---对账平台
- 为html添加footbar,foobar2000界面组件添加设置方法
- 百度病了,必应挂了,Yandex疯了。
- python制作课程表提醒_10行Python代码制作群聊提醒小助手,再也不怕漏掉消息了...
- 数值分析北航第八题第三次计算实习任务(附百度云源码java版)
- python打印丘比特之心_Python入门练习
- UI架构设计五 — DTA文件使用脚本自动生成
- 工单内容的三个层级分类
- pspice如何隔离驱动mosfet,MEG和M的
- css样式超出部分省略号