• 前言:对于一个项目,开发和生产环境之间会使用不同的配置文件,最简单的例子就是数据库连接池的配置了。当然,可以在打包上线前对配置文件进行替换,不过这也太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项目的管理相关推荐

  1. 解决eclipse环境下maven项目tomcat启动,未加载到项目的问题

    解决eclipse环境下maven项目tomcat启动,未加载到项目的问题 参考文章: (1)解决eclipse环境下maven项目tomcat启动,未加载到项目的问题 (2)https://www. ...

  2. filter动态参数 maven_使用Profile和Resources Filter隔离测试环境

    Maven能够帮我们很好的管理测试,我们可以在src/test/java 和 src/test/resources 下面使用JUnit或者TestNG 编写单元测试和集成测试,然后在命令行运行 mvn ...

  3. 使用Maven前夕(Maven项目架构管理工具、配置环境变量、阿里云镜像、本地仓库)

    Maven Maven项目架构管理工具 目前用来就是方便导入jar包! Maven的核心思想:预定大于配置(有约束不要去违反) 需要按照Maven规范来编写Java代码 Maven官网:https:/ ...

  4. IDEA下maven项目Plugins和Dependencies红线

    IDEA下maven项目Plugins和Dependencies红线 文章原网址 pom.xml配置完,Reimport后,发现Plugins和Dependencies出错,有红色波浪线 (1)对于P ...

  5. iis服务器部署项目,IIS环境下部署项目的详细教程

    分享IIS环境下部署项目的详细教程 1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后 找到World Wide Web Services,确保选中 ...

  6. asp项目如何部署到服务器,IIS环境下部署项目的详细教程

    分享IIS环境下部署项目的详细教程 1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后,点击"Turn Windows features ...

  7. idea下Maven项目module不加粗显示,maven project中不显示module

    记录一下idea下Maven项目module不加粗显示,maven project中不显示module,启动项目无法编译的问题 最近记性不好,来记录一下,每次搜百度都要好久.... 两种情况: 1. ...

  8. java maven 项目依赖管理 简介

    目录 一.简单的小问题? 二.maven到底是什么? 三.maven的安装 四.仓库的概念 五.使用命令行管理maven项目 六.使用Myeclipse创建maven自定义项目 七.pom.xml的依 ...

  9. Maven项目依赖管理 学习笔记

    本学习笔记根据慕课视频[Maven项目依赖管理]摘录,主要学习maven的使用方式,从理念到实践.基础到应用,掌握基于maven管理java项目的方式. 目录 第一章 Maven概述 Maven简介 ...

  10. Windows环境下maven 安装与环境变量配置

    Maven是一个项目管理的Java 工具,在JavaEE中,我们可以使用Maven方便地管理团队合作的项目,现在我们在学习JavaEE框架,使用Maven可以管理类库,有效方便地供团队中的其他人员使用 ...

最新文章

  1. 地图样式自定义_干货在线 | ArcGIS中定义图框样式
  2. MxGraph从入门到精通之2:HelloWorld程序解析
  3. android消息机制
  4. 怎么取html网页中的样式,从建站到拿站 -- HTML和CSS基础
  5. 前端学习(2921):vue的事件
  6. Bitfinex推出ETH 2.0质押服务
  7. 换个角度想问题,不再孤单
  8. 抖音很火的计算机音乐,抖音最近很火的几首背景音乐(BGM),推荐给大家很好听...
  9. R 语言实战-Part 3 笔记
  10. 鸿蒙os拍摄功能,华为5G巅峰之作:屏下摄像头+鸿蒙OS+徕卡镜头 这才是华为的实力...
  11. 【财务】FMS财务管理系统---对账平台
  12. 为html添加footbar,foobar2000界面组件添加设置方法
  13. 百度病了,必应挂了,Yandex疯了。
  14. python制作课程表提醒_10行Python代码制作群聊提醒小助手,再也不怕漏掉消息了...
  15. 数值分析北航第八题第三次计算实习任务(附百度云源码java版)
  16. python打印丘比特之心_Python入门练习
  17. UI架构设计五 — DTA文件使用脚本自动生成
  18. 工单内容的三个层级分类
  19. pspice如何隔离驱动mosfet,MEG和M的
  20. css样式超出部分省略号

热门文章

  1. this与$(this)的区别
  2. 9.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- 高级进阶
  3. 1.软件工程--软件建模与文档协作 --- 软件开发过程
  4. 7.jenkins 发布邮件
  5. css3中的border-image用法
  6. Project Aposs
  7. java压缩解压文件
  8. Python自动化中的元素定位xpath(二)
  9. Android中将一个图片切割成多个图片
  10. jquery事件绑定的几种用法