[转]Maven 区分开发环境和测试环境配置两种方式

2023-05-16

Maven 区分开发环境和测试环境配置两种方式

  • 方法一:(过滤方式)
    • 第一步、创建配置文件
    • 第二步:配置需要读取的配置文件
    • 第三步:配置MAVEN 的 pom.xml文件
    • 第四 步:打包
  • 方法二:(选择打包方式)

== 作者:sunxiakun 原文:https://blog.csdn.net/sunxiakun/article/details/65444744 ==

 项目开发过程中,如果一个项目经常发布,那么在打包之前会不断的修改配置文件,这无疑是很麻烦的一件事情。
 今天我介绍下这个问题怎么解决。

** 注意:本配置的前提是项目必须是MAVEN项目。**

方法一:(过滤方式)

在这里插入图片描述

第一步、创建配置文件

在项目的src/main/filter目录下创建 development.properties product.properties 两个文件。
development是开发配置内容。product是正式配置内容
(通过连接不同的数据库来模拟演示)
例如development:

driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc\:mysql\://192.168.1.5:3306/testdev?useUnicode\=true&characterEncoding\=utf8
jdbc_username=sun
jdbc_password=123456

product如下:

driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc\:mysql\://192.168.1.5:3306/testpro?useUnicode\=true&characterEncoding\=utf8
jdbc_username=sx
jdbc_password=124565

第二步:配置需要读取的配置文件

system.properties中需要变化的变量使用参数进行配置,如

driverClassName=com.mysql.jdbc.Driver
jdbc_url=${jdbc_url}
jdbc_username=${jdbc_username}
jdbc_password=${jdbc_password}

注意:${jdbc.url} 直接对应上面配置的development.properties或product.properties文件中的名称。

第三步:配置MAVEN 的 pom.xml文件

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <!-- 测试环境 -->
            <env>development</env>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <!-- 正式环境 -->
            <env>product</env>
        </properties>
    </profile>
</profiles>
<build>
    <finalName>web</finalName>
    <filters>
        <filter>src/main/resources/filter/${env}.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>filter/*.properties</exclude>
            </excludes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

profiles说明:
profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果

		<id>dev</id>
        <properties>
            <!-- 测试环境 -->
            <env>development</env>
        </properties>

key-value
env=development(可以有多个键值对)
默认启用的是dev环境配置:

<activation>
           <activeByDefault>true</activeByDefault>
</activation>

​配置文件路径,此路径可以自定义:

<filter>src/main/resources/filter/${env}.properties</filter>

​maven中配置文件目录:
src/main/resources

第四 步:打包

​打本地包 mvn -Pdev install或者mvn install(因为本例activeByDefault配的为true)
​打产品包 mvn -Pprod install

结果:src/main/resources/config/system.properties根据mvn -P 参数决定值

mvn clean install -Pprod -DskipTests

方法二:(选择打包方式)

在这里插入图片描述
pom.xml内容:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <!-- 测试环境 -->
            <env>development</env>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <!-- 正式环境 -->
            <env>product</env>
        </properties>
    </profile>
</profiles>
<build>
    <finalName>web</finalName>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->
            <excludes>
                <exclude>development/*</exclude>
                <exclude>product/*</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources/${env}</directory>
        </resource>
    </resources>
</build>

war文件结构(解压后):
​打本地包 mvn -Pdev install或者mvn install(因为本例activeByDefault配的为true)
在这里插入图片描述
打产品包 mvn -Pprod install
在这里插入图片描述

注意:打包时请先mvn clean一下,否则可能两类配置文件同时存在引起误解
如果要带上文件夹:

 <resource>
            <directory>src/main/resources/${env}</directory>
 </resource>

替换为

<resource>
    <directory>src/main/resources</directory>
    <includes>
        <include>${env}/*.properties</include> 
       <!--使用<include>${env}</include>则加不进去-->
    </includes>
</resource>

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[转]Maven 区分开发环境和测试环境配置两种方式 的相关文章

  • 无人机仿真-PX4固件编译、3D仿真环境gazebo及offboard模式下控制无人机运动

    无人机仿真 PX4固件编译 3D仿真环境gazebo及offboard模式控制无人机运动 这篇博客讲的是如何使用仿真环境进行无人机的仿真和控制 xff0c 如果还没搭建好仿真环境 xff0c 可以参考我的上一篇博客 xff0c 欢迎点赞和留
  • 深入了解ROS细节之编写简单的消息发布器和订阅器 (C++)、mavros消息发布器和订阅器

    深入了解ROS细节之消息发布器和订阅器 mavros消息发布器和订阅器 编写简单的消息发布器和订阅器 C 43 43 编写发布器节点 节点 Node 是指 ROS 网络中可执行文件 接下来 xff0c 我们将会创建一个发布器节点 talke
  • 深入了解ROS之编写无人机控制程序包

    深入了解ROS之编写无人机控制程序包 这篇教程来详细介绍一下如何编写出一个控制无人机的ROS程序包 编写ROS程序包推荐roboware studio xff0c 这款软件是在开源的vscode基础上二次开发 xff0c 用于ROS程序包的
  • Ubuntu使用apt下载离线安装包

    下面以下载python3 distutils的离线安装包为例 使用apt cache depends python3 distutils查找某个安装包的依赖 使用 apt download 96 apt span class token o
  • Mac虚拟机安装Windows server 2003 及安装组件提示插入软盘、Outlook提示无法连接pop3服务器

    安装server 2003 xff0c 百度MSDN 下载2003 xff0c 进行安装 当安装组件时提示插入软盘的错误 xff0c 需要注意虚拟机是否挂载了2003的镜像 xff0c 如果没有 xff0c 手动挂载 xff0c 然后重新安
  • 渗透测试靶场练习(三)之DC-1

    DC 1 环境搭建就不细述了 xff0c 直接下载VM文件打开即可 xff0c 注意设置好网络下载链接下载 主机发现 使用arp scan l在局域网中查找存活主机 可以知道IP为192 168 24 133的主机为靶机端口扫描 扫描结果显
  • xml文件中 xmlns xmlns:xsi 等解释

    http bbs csdn net topics 390751819 maven 的 pom xml 开头是下面这样的 lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xm
  • 渗透测试之三内网跳板

    搭建内网的转发跳板 当成功控制一个网络中的一台主机后 xff0c 由于后面的主机都在内网中无法访问 xff0c 所以需要在跳板机上搭建代理 xff0c 实现对内网中的其他主机的访问 portfwd是一款强大的端口转发工具 xff0c 支持T
  • 无人机仿真之搭建仿真平台-SITL、gazebo、ROS

    文章目录 无人机仿真之仿真平台搭建前言ardupilot SITL APM飞控安装启动仿真简单仿真结合gazebo仿真软件的3D环境仿真环境安装示例 多无人机仿真 终端操作无人机的部分指令 安装PX4框架 PX4飞控仿真平台搭建完成后 xf
  • 前备 获取stm32的官方SDK并使用

    stm32的SDK是ST为stm32写的一套官方的软件包 xff0c 里面包括一些例程可以作为我们的参考 xff0c 降低我们的学习难度和周期 获取SDK 首先自然是进入官网了 点此进入ST官网 注册什么的我就不说了 下载就ok了 然后是如
  • 前备 正点原子以及野火stm32资料获取

    stm32学习的两个论坛 xff0c 正点原子和野火都为32提供了相应的教程例程 xff0c 普中也有 xff0c 需要的可以自行去官网下载 正点原子 点此链接进入正点论坛下载资料 注册什么的我就不说了 A盘是程序和手册 xff0c B盘是
  • 前备 STM32F103ZET6程序向STM32F103C8T6移植

    因为一些例程都是ZET6或者其它类型的芯片 xff0c 而手上只有一块小巧 xff08 寒酸 xff09 的c8t6 xff0c 所以移植就比较重要了 两芯片的区别 由之前的型号说明可以知道 xff0c c8t6与zet6的区别在于引脚数与
  • 前备 stm32的几种下载程序的方式

    stm32的下载方式我目前接触最多的有三种 xff0c 用串口ISP烧录hex文件 xff0c 用仿真器一键烧录 xff0c 还有那种小白式的bootlaoder固件升级烧录 用转串口模块烧录hex文件 首先要下载一个软件 xff0c 然后
  • 一、PX4官网读

    接触pixhawk好几年了吧 xff0c 这次想开始记录 xff0c 开始正式整理一下自己的学习经过 很多东西在官网上有说明 官网千万看英文 xff0c 不要切换语言 xff0c 很坑 QGC使用 https docs qgroundcon
  • 二、pixhawk光流传感器PX4FLOW

    这东西不好用啊 在官网介绍里我们主要看到这个是关于光流扩展的一般还会有一个声呐传感器 xff0c 就是那个MaxBotix I2CXL MaxSonar EZ这里有介绍 这个超声波传感器得说一下 xff0c 它可以单独通过IIC去链接pix
  • 五、关于pixhawk的仿真,jmavsim和Gazebo

    实物飞总是很麻烦的 xff0c 一个不小心就炸鸡了 所以在仿真环境里去验证是最好的方法 xff0c 我也觉得先艹仿真再艹飞机是很正确的一种方式 先介绍一下jmavsim 官网介绍 前面说的环境搭建好了 xff0c 就可以直接make px4
  • 六、PX4的ros/mavros搭建

    老规矩 xff0c 看官网 这里 我看这个上面已经在推ROS2了 不过对于我这种只接触过ROS1版本的还是MAVROS来得清切 MAVROS说白了就是MAVLINK的进一步封装 xff0c 可以使得计算机通过串口发送指令给pixhawk x
  • ajaxSubmit

    34 form 34 ajaxSubmit xff09 介绍 http www cnblogs com qiantuwuliang archive 2009 09 14 1566604 html jQuery extend 函数详解 htt
  • git的使用

    无情的标题 首先这次正对的是码云平台上的一个小deno 第一步进入码云平台fork我们的demo 登录注册一条龙 搜索这个demo 点击fork xff0c 一般帅哥美女都会随手点一个star 然后返回自己的本地空间就可以看到啦 首先我们要
  • 逻辑分析仪使用

    首先我们打开软件 软件自行下载 xff0c 我用的是这一个软件 在测试的时候 xff0c 我们确保软件界面左上角或者是上方显示connected xff0c 不然我们看到的波形会是一个相当标准的正弦 xff08 或者余弦 xff09 波 然

随机推荐