【Java】Maven多环境切换实战(实操图解)

news2024/11/15 15:43:34

Java系列文章目录

补充内容 Windows通过SSH连接Linux
第一章 Linux基本命令的学习与Linux历史


文章目录

  • Java系列文章目录
  • 一、前言
  • 二、学习内容:
  • 三、问题描述
  • 四、解决方案:
    • 4.1 Maven多环境配置学习
    • 4.2 切换环境
      • 4.2.1 先打包
      • 4.2.2 之后可以切换
  • 五、总结:
    • 5.1 注意事项
    • 5.2 代码参考

一、前言

  • Maven多环境配置的使用
  • 参考代码附总结里

二、学习内容:

  • Maven多环境配置
  • 切换环境

三、问题描述

  • 不同人使用项目端口之类的配置可能不同
  • 生产环境与真实环境配置可能不同

四、解决方案:

4.1 Maven多环境配置学习

在pom.xml中添加多环境相关配置

  • 配置项目资源文件的处理方式

在这里插入图片描述

  • 指定配置文件就在下图红框部分

模板文件是自己建的

在这里插入图片描述

  • 定义不同环境的配置文件
    这个id就是对应 -P 后面的内容

在这里插入图片描述

🌟 <activeByDefault>true</activeByDefault> 这个配置通常出现在 Spring Boot 配置文件中,特别是与 Spring Profiles 相关的配置。它用于指定一个特定的 Spring Profile 是否默认激活

🌟 <filter>application-dev.properties</filter>:这是一个具体的过滤器条目,指定了一个名为application-dev.properties的文件。这意味着在构建过程中,该文件(或其内容)可能会被用作替换或过滤的模板

  • 具体文件内容

🌟 相当于替换符里面的内容在其他配置文件里面写好之后通过Maven切换

在这里插入图片描述

4.2 切换环境

4.2.1 先打包

  • 打包命令如下
mvn package

在这里插入图片描述

4.2.2 之后可以切换

  • 切换命令如下
    dev与prod就是上面配置文件的<id>

🌟 注意 P 是大写

mvn package -P dev
mvn package -P prod

终端输入后效果:
在这里插入图片描述

🌟 执行完后在target文件里面的配置文件就是当前项目配置文件

可以看到我们在application-prod.properties的配置正确替换了占位符的内容

在这里插入图片描述


五、总结:

5.1 注意事项

🌟 P是大写

5.2 代码参考

  • 多环境配置

剩下内容比较短看上面的图片即可

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>Mylogin</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Mylogin</name>
    <description>Mylogin</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>3.0.2</spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>org.example.mylogin.MyloginApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering> true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>
    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>application-dev.properties</filter>
                </filters>
            </build>
        </profile>

        <profile>
            <id>prod</id>
            <build>
                <filters>
                    <filter>application-prod.properties</filter>
                </filters>
            </build>
        </profile>




    </profiles>


</project>

(后续有遇到问题再添加)


声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2087714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聊聊Netty异常传播链与最佳实践

写在文章开头 Netty通过责任链的思想解耦了各个业务的处理逻辑,是的用户可以非常方便的根据不同的生命周期进行相应的业务处理。而本文将针对Netty中的异常和异常传播过程进行分析,并给出最佳的处理技巧,希望对你有帮助。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的…

Electron 项目实战 03: 实现一个截图功能

实现效果 实现思路 创建两个window&#xff0c;一个叫mainWindow&#xff0c;一个叫cutWindowmainWindow&#xff1a;主界面用来展示截图结果cutWindow&#xff1a;截图窗口&#xff0c;加载截图页面和截图交互逻辑mainWindow 页面点击截图&#xff0c;让cutWIndow 来实现具体…

WEB应用服务器TOMCAT知识点

TOMCAT介绍 Tomcat是一个开源的Java Web应用服务器&#xff0c;主要用于运行Java编写的网站。 Apache Tomcat是由Apache Software Foundation&#xff08;ASF&#xff09;开发的一个开源Java Web应用服务器&#xff0c;最初由Sun Microsystems捐赠给Apache软件基金会&#xf…

数据结构(Java实现):栈和队列相关练习题

文章目录 1. 题目链接2. 题目解析2.1 括号匹配2.2 逆波兰表达式求值2.3 出栈入栈次序匹配2.4 最小栈2.5 环形数组队列2.6 用队列实现栈2.7 用栈实现队列 1. 题目链接 括号匹配逆波兰表达式求值出栈入栈次序匹配最小栈设计循环队列用队列实现栈用栈实现队列 2. 题目解析 2.1 …

基于RK3568平台移植ffmpeg3.4.5及ffmpeg验证

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、移植流程3.1 编译x2643.2 编译mpp3.3 编译ffmpeg四、ffmpeg验证4.1 ffmpeg配置说明4.2 ffmpeg推流/拉流使用说明4.2.1 使用http方式推流/拉流4.2.1.1 先执行ffmpeg服务4.2.1.2 再执行ffmpeg进行推流4.2.1.3 最后执行vlc进…

等保测评中的数据安全保护:重点与挑战

在信息安全等级保护&#xff08;等保&#xff09;测评中&#xff0c;数据安全保护是核心关注点之一&#xff0c;它不仅关系到企业的合规性&#xff0c;还直接影响到企业的运营安全和用户信任。本文将深入探讨等保测评中数据安全保护的重点与挑战&#xff0c;为企业提供有效的应…

JavaScript初级——事件传播

1、事件的传播 关于事件的传播网景公司和微软公司有不同的理解&#xff1a; 微软公司认为事件应该是由内向外传播&#xff0c;也就是当事件触发时&#xff0c;应该先触发当前元素上的事件&#xff0c;然后再向当前元素的祖先元素上传播&#xff0c;也就说事件应该在冒泡阶段执行…

如何解决U盘无法压缩卷或删除卷的问题

U盘在日常使用中&#xff0c;偶尔会遇到无法压缩卷或删除卷的情况。出现这些问题通常与U盘的磁盘状态或文件系统有关。本文将介绍一种有效的解决方法&#xff0c;通过使用Windows自带的磁盘管理工具diskpart来解决这些问题。 一、问题原因 U盘无法压缩卷或删除卷的常见原因包…

Nginx部署Vue前端项目全攻略:从构建到上线一步到位!

要将前端 Vue 项目部署到 Nginx&#xff0c;你需要遵循以下步骤&#xff1a; 首先确保你已经安装了 Node.js 和 npm。如果没有&#xff0c;请访问 Node.js 官网 下载并安装。 使用 Vue CLI 创建一个新的 Vue 项目&#xff08;如果你还没有一个&#xff09;&#xff1a; npm i…

探索未知,悦享惊喜 —— 您的专属盲盒小程序,即将开启奇妙之旅

在这个充满无限可能的数字时代&#xff0c;每一次点击都可能是通往惊喜的门户。我们匠心打造的“惊喜盲盒”小程序&#xff0c;正是为了给您带来前所未有的娱乐体验与心灵触动。在这里&#xff0c;每一份盲盒都蕴藏着精心挑选的宝藏&#xff0c;等待着与您的不期而遇。 【探索…

学习bat脚本

内容包含一些简单命令或小游戏&#xff0c;在乐趣中学习知识。 使用方法&#xff1a; 新建文本文档&#xff0c;将任选其一代码保存到文档中并保存为ASCII编码。将文件后缀改为.bat或.cmd双击运行即可。 一. 关机脚本 1. 直接关机 echo off shutdown -s -t 00秒直接关机。 2…

H5手机端调起支付宝app支付

1.调起APP页面如下 步骤 1.让后端对接一下以下文档&#xff08;手机网站支付通过alipays协议唤起支付宝APP&#xff09; https://opendocs.alipay.com/open/203/107091?pathHash45006f4f&refapi 2.后端接口会返回一个form提交表单 html&#xff1a;在页面中定义一个d…

halcon2

halcon自带图片路径 C:\Users\Public\Documents\MVTec\HALCON-18.11-Progress\examples 案例1&#xff1a;blob 固定阈值分割图像-车牌号识别 案例2&#xff1a;blob 动态阈值分割 匹配字母 案例1:打开窗口并画几何图形 &#xff08;ROI 感兴趣区域&#xff09; 并且距离测量…

IO进程day05(线程、同步、互斥、条件变量、进程间通信IPC)

目录 【1】线程 1》什么是线程 1> 概念 2> 进程和线程的区别 3> 线程资源 2》 函数接口 1> 创建线程&#xff1a;pthread_create 2> 退出线程&#xff1a;pthread_exit 3> 回收线程资源 练习1&#xff1a;通过父子进程完成对文件的拷贝&#xff08…

sqlmap注入语句学习,帮助你排查SQL注入漏洞

摘要 sqlmap是一个开源的渗透测试工具&#xff0c;可以用来进行自动化检测&#xff0c;利用SQL注入漏洞&#xff0c;获取数据库服务器的权限。它具有功能强大的检测引擎&#xff0c;针对各种不同类型数据库的渗透测试的功能选项&#xff0c;包括获取数据库中存储的数据&#x…

第3章-03-Python库Requests安装与讲解

Python库Requests的安装与讲解 &#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年CSDN全站百大博主。 &#x1f3c6;数年电商行业从业经验&…

GPLGIAGQ;MMP2靶向光敏剂多肽;MMP2可降解 (cleavable) 的多肽;CAS号:109053-09-0

【GPLGIAGQ 简介】 GPLGIAGQ 是一种 MMP2 可切割的多肽,在脂质体和胶束纳米载体中都被用作刺激敏感的连接物,用于 MMP2 触发的肿瘤靶向治疗。GPLGIAGQ可用于合成光动力治疗 (PDT) 中独特的MMP2靶向光敏剂。 【中文名称】MMP2靶向光敏剂多肽&#xff1b;GPLGIAGQ 【英文名称】G…

【知识】缓存类型和策略

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 缓存读取策略 缓存写入策略 直写缓存写入策略 回写高速缓存写入策略 回写缓存写入策略 ​​​​​​缓存替换策略 先进先出 &#xff08;F…

C与C++的三种区分方式

1、单个字符的sizeof大小 在C和C中&#xff0c;单个字符&#xff08;char类型&#xff09;的大小通常是1字节&#xff08;8位&#xff09;&#xff0c;但这取决于编译器和目标平台。这是一种特别的区分方式&#xff0c;特别定义的。 2、是否有__cplusplus __cplusplus是一个预…

【html+css 绚丽Loading】000025 玄机翻转棱

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…