前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Maven 打包实现生产环境与测试环境配置分离

Maven 打包实现生产环境与测试环境配置分离

作者头像
shengjk1
发布于 2025-05-16 00:40:27
发布于 2025-05-16 00:40:27
10200
代码可运行
举报
文章被收录于专栏:码字搬砖码字搬砖
运行总次数:0
代码可运行

在使用maven的过程中会发现一个问题,由于生产环境跟测试环境的配置不通,所以在分别打两个环境的包时,往往需要人工参与去修改配置文件,而人工参与的次数越大错误的几率就会越大,那maven能不能再不用人工修改配置文件的前提下来分别打两个环境的包呢,当然可以。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--也会供子项目继承-->
    <build>
        <!-- 插件管理,可供子项目继承 -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <resources>
            <resource>
                <directory>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/core/src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
            <!--设置自动替换-->
            <resource>
                <directory>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/core/src/main/resources</directory>
                <includes>
                    <include>jdbc.properties</include>
                </includes>
                <!--也可以用排除标签-->
                <!--<excludes></excludes>-->
                <!--开启过滤-->
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <!--<phase>clean</phase>-->
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo>Fruit:${fruit}</echo>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


    <profiles>
        <profile>
            <id>product</id>
            <properties>
                <fruit>product</fruit>
            </properties>
            <build>
                <filters>
                    <filter>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/filters/jdbc-product.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <fruit>dev</fruit>
            </properties>
            <activation>
            <!-->默认是dev环境的<-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/filters/jdbc-dev.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>

如果想要打生产环境的包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mvn package  -Pproduct 

filter文件下包括2个配置文件 jdbc-dev.properties

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jdbc.url=i am dev
jdbc.username=i am dev
jdbc.password=i am dev

jdbc-product.properties

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jdbc.url=i am product
jdbc.username=i am product
jdbc.password=i am product

而resource目录下 jdbc.properties

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}

maven在构建的时候会自动替换变量里的变量

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Maven系列第9篇:多环境构建,作为核心开发,这个玩不转有点说不过去!
整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。
路人甲Java
2019/11/29
1.1K0
Maven系列第9篇:多环境构建,作为核心开发,这个玩不转有点说不过去!
Springboot与Maven多环境配置文件夹解决方案
?原文地址为https://www.cnblogs.com/haixiang/p/12451703.html,转载请注明出处! Profile用法 我们在application.yml中为jdbc.u
海向
2020/03/11
1.8K0
maven的资源过滤filters[通俗易懂]
profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。需要掌握profile的定义以及激活条件。后面结合resources会介绍。
全栈程序员站长
2022/08/26
2.1K0
Maven多环境配置
多数项目都会有开发环境、测试环境、生产环境,各个环境配置可能都会不一样,于是在构建时,会涉及到环境配置的切换。来回手工修改配置,效率低下,容易出错。可以配置多个含有不同环境配置的Profile,在构建时指定构建环境,达到多环境下快速灵活构建的目的。
布禾
2020/10/29
5010
Maven多环境配置
走进Java接口测试之多环境配置
在日常开发过程中,我们都会有多套开发环境,比如:开发、测试、生产等不同的应用环境,这些应用环境都对应不同的配置项,包括不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。本文主要介绍在 SpringBoot 项目中如何进行多环境配置的方法。
高楼Zee
2019/10/17
1.1K0
走进Java接口测试之多环境配置
maven 基础 maven-shade-pluginMaven Scopepom.xml 样例
Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值: * compile,缺省值,适用于所有阶段,会随着项目一起发布。 * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
WindWant
2020/09/11
1.1K0
走进Java接口测试之多环境配置
在日常开发过程中,我们都会有多套开发环境,比如:开发、测试、生产等不同的应用环境,这些应用环境都对应不同的配置项,包括不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。本文主要介绍在 SpringBoot 项目中如何进行多环境配置的方法。
玖柒的小窝
2021/09/19
7480
Maven Profile
在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停的去修改这些配制文件,次数一多,相当麻烦。现在,利用maven的filter和profile功能,我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.
一点博客
2019/07/24
1.3K0
技术汇总:第十章:Maven Profile动态选择配置文件
在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停的去修改这些配制文件,次数一多,相当麻烦。现在,利用maven的filter和profile功能,我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.
Java廖志伟
2022/09/28
6470
原来实现项目多环境打包部署是如此的简单
   在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境、测试团队的测试环境、生产仿真环境、正式生产环境,不同的公司可能还会有更多的环境需要对项目配置进行动态切换。项目在这些环境切换的过程中,往往会有一部分配置是所有的环境都相同的,还有一部分是不同环境都不相同的(最典型的就是数据连接配置文件jdbc.properties),如果我们不做特殊配置,那么我们就需要根据环境来修改配置文件,不同环境来回修改和切换,不仅容易出错,而且很繁琐,那么这时候我们在想:有没有办法可以能够让我们不用修改配置就能发布到不同的环境中呢?答案显而易见,那么本文我们就通过三种方式来解决这个问题。从而把我们的软件的可移植性提高一个层次。
阿豪聊干货
2018/08/09
1.4K0
maven项目配置框架
任何一个maven项目都会继承一个默认的父pom配置:Super POM,详见:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html 。 在pom.xml中可以直接使用一些变量值,如:
编程随笔
2019/09/11
5290
porm文件中的build标签
执行build任务时,如果没有指定目标,将使用的默认值。
全栈程序员站长
2022/07/04
1.4K0
Spring boot使用Maven Profile配合Spring Profile进行多环境配置和打包
但是用了Maven Profile之后,我打包就不用每次都改application.yml文件了
ydymz
2021/01/05
3.2K1
Spring boot使用Maven Profile配合Spring Profile进行多环境配置和打包
Java如何优雅地实现单元测试与集成测试
在日常的开发过程中,为了保证代码质量,有追求的程序员一般都会对自己编写的代码进行充分的测试,这种测试不仅仅是体现在对正常功能的简单接口调用,而是要根据代码中的各种逻辑分支,进行尽可能多的覆盖性单元测试以及主要逻辑的集成测试。
用户5927304
2020/07/08
3.3K0
《Maven实战》全书总结
把MAVEN_HOME/conf/seettings.xml cp 到 ~/.m2/下,在.m2下的settings.xml中所作的配置就是用户级别的配置,而直接编辑MAVEN_HOME/conf/seettings.xml所作的配置是全局的配置
CoderJed
2018/09/13
2K0
《Maven实战》全书总结
springboot分环境配置文件
这里只是为了演示,具体几个配置文件还得根据需求来,有的还有什么UAT环境、灰度环境等,不过没什么,无非就是再添加配置文件和相应pom文件调整一下罢了。另外application.properties中最好放置一些不会改变的配置项,比如说端口。
田维常
2019/07/30
9000
springboot分环境配置文件
maven pom.xml具体解释(整理)「建议收藏」
通过xml表示maven项目,使用pom.xml来实现。主要描写叙述了项目:包含配置文件。开发人员须要遵循的规则,缺陷管理系统。组织和licenses,项目的url,项目的依赖性,以及其它全部的项目相关因素。
全栈程序员站长
2022/07/10
7790
Springboot的开发环境(dev)、测试环境(beta)和生产环境(product)打包部署
1、在项目开发过程中需要考虑不同的运行环境:开发环境(dev)、测试环境(beta)和生产环境(product)。在以往的开发过程中通常使用Maven构建工具进行控制,但却需要进行大量的配置。SpringBoot考虑到此类问题,专门设计了profile支持。
别先生
2020/10/30
3.1K0
Springboot的开发环境(dev)、测试环境(beta)和生产环境(product)打包部署
Maven pom.xml配置详解
<projectxmlns="http://maven.apache.org/POM/4.0.0"
流柯
2018/08/30
1.5K0
Maven 利用 profile 进行多环境配置
我们在进行项目的多环境配置时,有很多种方式供我们选择,比如 SpringBoot 自带的 application-dev.yml、maven 的 profile 等。这里介绍的就是如何利用 profile 进行多环境配置。
JMCui
2019/11/26
9360
Maven 利用 profile 进行多环境配置
相关推荐
Maven系列第9篇:多环境构建,作为核心开发,这个玩不转有点说不过去!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验