当前位置: 首页 > news >正文

一个是生产打包的时候, 一个是本地测试启动的时候,maven如何配置?

在Maven项目中,使用两套不同的pom.xml配置分别用于生产打包和本地测试启动是常见需求,尤其当你需要调整依赖范围、插件配置或使用不同资源文件时。Maven通过profiles和activeProfiles提供了灵活的配置管理方案,允许你为不同的环境或构建场景定义特定的配置集。

下面是如何利用Maven profiles来满足你的需求:

1. 定义 Profiles

pom.xml文件中添加<profiles>标签,并在其中定义两个profiles,分别命名为productiontest

<project>...<profiles><profile><id>production</id><!-- 生产环境配置 --><dependencies><!-- 生产环境特有的依赖 --><dependency><groupId>...</groupId><artifactId>...</artifactId><version>...</version><scope>provided</scope></dependency></dependencies><build><plugins><!-- 生产环境特有的插件配置 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.example.MainClass</mainClass></manifest></archive></configuration></plugin></plugins></build></profile><profile><id>test</id><!-- 测试环境配置 --><dependencies><!-- 测试环境特有的依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies><build><plugins><!-- 测试环境特有的插件配置 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></profile></profiles>...
</project>

2. 指定 Active Profiles

要激活某个profile,你可以在Maven命令行中使用-P参数来指定,例如:

  • 激活生产环境配置

    mvn clean package -Pproduction
    
  • 激活测试环境配置

    mvn clean test -Ptest
    

3. 默认 Profile

如果你希望在没有指定-P参数时,默认激活某个profile,可以在<profiles>标签中使用<activation>元素:

<profiles><profile><id>default</id><!-- 默认配置 --><activation><activeByDefault>true</activeByDefault></activation><!-- 默认配置的内容 --></profile><!-- 其他 profiles -->
</profiles>

这样,如果没有显式激活其他profiles,default profile将被自动激活。

4. 使用条件激活

你还可以根据环境变量、操作系统或其他条件来自动激活某个profile:

<profile><id>production</id><!-- 生产环境配置 --><activation><property><name>env</name><value>prod</value></property></activation>
</profile>

以上配置表示,当环境变量env的值为prod时,production profile将被激活。

通过这种方式,你可以轻松地在不同的构建场景下切换Maven的配置,确保生产打包和本地测试启动时使用最合适的依赖和插件设置。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 天地图按地名搜索+openlayer+vue3
  • 如何在IDEA上使用JDBC编程【保姆级教程】
  • 力扣第五十三题——最大子数组和
  • 如何开始学习Swift编程?
  • MySQL 实战 45 讲(01-05)
  • C# udp通信测试助手
  • 【数据分享】2024最新安徽省镇级行政区划矢量shp
  • 【面试经验】京东java京东young 一面80min
  • 电子元器件—三极管(一篇文章搞懂电路中的三极管)(笔记)(面试考试必备知识点)
  • EMQX服务器安装MQTT测试
  • 通过Netlink检测USB设备的插拔
  • 吴恩达老师机器学习作业-ex7(聚类)
  • 使用 Ansible Blocks 进行错误处理
  • Centos服务器root用户禁止远程登录
  • Html5总结
  • 2018一半小结一波
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • eclipse的离线汉化
  • EventListener原理
  • IP路由与转发
  • Java Agent 学习笔记
  • learning koa2.x
  • Less 日常用法
  • Python爬虫--- 1.3 BS4库的解析器
  • QQ浏览器x5内核的兼容性问题
  • SAP云平台里Global Account和Sub Account的关系
  • Swoft 源码剖析 - 代码自动更新机制
  • 浮动相关
  • 技术:超级实用的电脑小技巧
  • 使用权重正则化较少模型过拟合
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #java学习笔记(面向对象)----(未完结)
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #Spring-boot高级
  • (03)光刻——半导体电路的绘制
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (MATLAB)第五章-矩阵运算
  • (Note)C++中的继承方式
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (十)T检验-第一部分
  • (十三)Flink SQL
  • (转)人的集合论——移山之道
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)深入super,看Python如何解决钻石继承难题
  • .gitignore文件—git忽略文件
  • .net core Redis 使用有序集合实现延迟队列
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net Redis的秒杀Dome和异步执行
  • .NET 读取 JSON格式的数据
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 项目如何优雅地设置条件编译符号?