HoRain云--Maven 构建配置文件

发布时间:2026/9/25 8:47:18

HoRain云--Maven 构建配置文件 HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍构建配置文件的类型配置文件激活配置文件激活实例1、配置文件激活2、通过Maven设置激活配置文件3、通过环境变量激活配置文件4、通过操作系统激活配置文件5、通过文件的存在或者缺失激活配置文件构建配置文件是一系列的配置项的值可以用来设置或者覆盖 Maven 构建默认值。使用构建配置文件你可以为不同的环境比如说生产环境Production和开发Development环境定制构建方式。配置文件在 pom.xml 文件中使用 activeProfiles 或者 profiles 元素指定并且可以通过各种方式触发。配置文件在构建时修改 POM并且用来给参数设定不同的目标环境比如说开发Development、测试Testing和生产环境Production中数据库服务器的地址。构建配置文件的类型构建配置文件大体上有三种类型:类型在哪定义项目级Per Project定义在项目的POM文件pom.xml中用户级 Per User定义在Maven的设置xml文件中 (%USER_HOME%/.m2/settings.xml)全局Global定义在 Maven 全局的设置 xml 文件中 (%M2_HOME%/conf/settings.xml)配置文件激活Maven的构建配置文件可以通过多种方式激活。使用命令控制台输入显式激活。通过 maven 设置。基于环境变量用户或者系统变量。操作系统设置比如说Windows系列。文件的存在或者缺失。配置文件激活实例假定项目结构如下其中在src/main/resources文件夹下有三个用于测试文件文件名描述env.properties如果未指定配置文件时默认使用的配置。env.test.properties当测试配置文件使用时的测试配置。env.prod.properties当生产配置文件使用时的生产配置。注意这三个配置文件并不是代表构建配置文件的功能而是用于本次测试的目的比如我指定了构建配置文件为 prod 时项目就使用 env.prod.properties文件。注意下面的例子仍然是使用 AntRun 插件因为此插件能绑定 Maven 生命周期阶段并通过 Ant 的标签不用编写一点代码即可输出信息、复制文件等经此而已。其余的与本次构建配置文件无关。1、配置文件激活profile 可以让我们定义一系列的配置信息然后指定其激活条件。这样我们就可以定义多个 profile然后每个 profile 对应不同的激活条件和配置信息从而达到不同环境使用不同配置信息的效果。以下实例我们将 maven-antrun-plugin:run 目标添加到测试阶段中。这样我们可以在不同的 profile 中输出文本信息。我们将使用 pom.xml 来定义不同的 profile并在命令控制台中使用 maven 命令激活 profile。pom.xml 文件如下project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd modelVersion4.0.0/modelVersion groupIdcom.jsoft.test/groupId artifactIdtestproject/artifactId packagingjar/packaging version0.1-SNAPSHOT/version nametestproject/name urlhttp://maven.apache.org/url dependencies dependency groupIdjunit/groupId artifactIdjunit/artifactId version3.8.1/version scopetest/scope /dependency /dependencies profiles profile idtest/id build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-antrun-plugin/artifactId version1.8/version executions execution phasetest/phase goals goalrun/goal /goals configuration tasks echoUsing env.test.properties/echo copy filesrc/main/resources/env.test.properties tofile${project.build.outputDirectory}/env.properties overwritetrue/ /tasks /configuration /execution /executions /plugin /plugins /build /profile profile idnormal/id build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-antrun-plugin/artifactId version1.8/version executions execution phasetest/phase goals goalrun/goal /goals configuration tasks echoUsing env.properties/echo copy filesrc/main/resources/env.properties tofile${project.build.outputDirectory}/env.properties overwritetrue/ /tasks /configuration /execution /executions /plugin /plugins /build /profile profile idprod/id build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-antrun-plugin/artifactId version1.8/version executions execution phasetest/phase goals goalrun/goal /goals configuration tasks echoUsing env.prod.properties/echo copy filesrc/main/resources/env.prod.properties tofile${project.build.outputDirectory}/env.properties overwritetrue/ /tasks /configuration /execution /executions /plugin /plugins /build /profile /profiles /project注意构建配置文件采用的是profiles节点。说明上面新建了三个profiles其中id区分了不同的profiles执行不同的 AntRun 任务而 AntRun 的任务可以这么理解AntRun 监听 test 的 Maven 生命周期阶段当 Maven 执行 test 时就触发了 AntRun 的任务任务里面为输出文本并复制文件到指定的位置而至于要执行哪个 AntRun 任务此时构建配置文件起到了传输指定的作用比如通过命令行参数输入指定的id。执行命令mvn test -Ptest提示第一个 test 为 Maven 生命周期阶段第 2 个 test 为构建配置文件指定的 id 参数这个参数通过 -P 来传输当然它可以是 prod 或者 normal 这些由你定义的id。运行的结果如下可以看出成功的触发了AntRun的任务。并且是对应构建配置文件下的 id 为 test 的任务。再测试其余两个命令结果如下2、通过Maven设置激活配置文件打开%USER_HOME%/.m2目录下的settings.xml文件其中%USER_HOME%代表用户主目录。如果 setting.xml 文件不存在就直接拷贝%M2_HOME%/conf/settings.xml到 .m2 目录其中%M2_HOME%代表 Maven 的安装目录。配置 setting.xml 文件增加activeProfiles属性settings xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd ... activeProfiles activeProfiletest/activeProfile /activeProfiles /settings执行命令mvn test提示 1此时不需要使用 -Ptest 来输入参数了上面的 setting.xml 文件的 activeprofile 已经指定了 test 参数代替了。提示 2同样可以使用在%M2_HOME%/conf/settings.xml的文件进行配置效果一致。执行结果3、通过环境变量激活配置文件先把上一步测试的 setting.xml 值全部去掉。然后在 pom.xml 里面的 id 为 test 的 profile 节点加入 activation 节点project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd modelVersion4.0.0/modelVersion groupIdcom.jsoft.test/groupId artifactIdtestproject/artifactId packagingjar/packaging version0.1-SNAPSHOT/version nametestproject/name urlhttp://maven.apache.org/url dependencies dependency groupIdjunit/groupId artifactIdjunit/artifactId version3.8.1/version scopetest/scope /dependency /dependencies profiles profile idtest/id activation property nameenv/name valuetest/value /property /activation build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-antrun-plugin/artifactId version1.8/version executions execution phasetest/phase goals goalrun/goal /goals configuration tasks echoUsing env.test.properties/echo copy filesrc/main/resources/env.test.properties tofile${project.build.outputDirectory}/env.properties overwritetrue/ /tasks /configuration /execution /executions /plugin /plugins /build /profile profile idnormal/id build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-antrun-plugin/artifactId version1.8/version executions execution phasetest/phase goals goalrun/goal /goals configuration tasks echoUsing env.properties/echo copy filesrc/main/resources/env.properties tofile${project.build.outputDirectory}/env.properties overwritetrue/ /tasks /configuration /execution /executions /plugin /plugins /build /profile profile idprod/id build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-antrun-plugin/artifactId version1.8/version executions execution phasetest/phase goals goalrun/goal /goals configuration tasks echoUsing env.prod.properties/echo copy filesrc/main/resources/env.prod.properties tofile${project.build.outputDirectory}/env.properties overwritetrue/ /tasks /configuration /execution /executions /plugin /plugins /build /profile /profiles /project执行命令mvn test -Denvtest提示 1上面使用 -D 传递环境变量其中 env 对应刚才设置的 name 值test 对应value。提示 2在 Windows 10 上测试了系统的环境变量但是不生效所以只能通过 -D 传递。执行结果4、通过操作系统激活配置文件activation 元素包含下面的操作系统信息。当系统为 windows XP 时test Profile 将会被触发。profile idtest/id activation os nameWindows XP/name familyWindows/family archx86/arch version5.1.2600/version /os /activation /profile现在打开命令控制台跳转到 pom.xml 所在目录并执行下面的 mvn 命令。不要使用 -P 选项指定 Profile 的名称。Maven 将显示被激活的 test Profile 的结果。mvn test5、通过文件的存在或者缺失激活配置文件现在使用 activation 元素包含下面的操作系统信息。当 target/generated-sources/axistools/wsdl2java/com/companyname/group 缺失时test Profile 将会被触发。profile idtest/id activation file missingtarget/generated-sources/axistools/wsdl2java/ com/companyname/group/missing /file /activation /profile现在打开命令控制台跳转到 pom.xml 所在目录并执行下面的 mvn 命令。不要使用 -P 选项指定 Profile 的名称。Maven 将显示被激活的 test Profile 的结果。mvn test❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧
延伸阅读

更多相关文章

2026/9/23 21:34:53

基于AI Agent的音乐CLI工具:用自然语言实现智能搜索与播放

1. 项目缘起:当音乐搜索变得“不好找” 不知道你有没有过这样的体验:想听一首歌,打开某个音乐App,在搜索框里输入了歌名,结果出来的要么是各种翻唱、现场版、DJ混音,要么就是一堆同名但根本不是你要找的歌。…

2026/9/19 22:08:17

SK-II神仙水源头工厂贴牌定制,发酵滤液精华水代工的水到底有多深

先跟你交个底。前几天一个做私域团购的老板,拎着个某日系头部高端发酵水空瓶跑我办公室,开口就问这个经典弱酸性发酵滤液体系能不能做到工艺稳定、肤感一致。我说你要是奔着“对标终端成品工艺架构”来的,咱俩就能往下聊;要是只想…

2026/9/19 22:08:17

JVM-04-类的生命周期

文章目录什么是类的生命周期1. 加载2. 连接2.1 验证2.2 准备2.3 解析3. 初始化类什么时候会初始化?什么时候不会初始化?总结什么是类的生命周期 描述了一个 .class 文件从被 JVM 加载,到卸载的整个过程。 主要包含以下阶段: 加…

2026/9/25 8:42:54

Atlas 300V 部署 YOLO 实战:从模型转换到推理调优全指南

如果你也在纠结“atlas部署yolo”到底怎么搞,以及“Atlas 300V 24G是不是运算加速卡”这类问题,那这篇应该能省你不少时间。我手头有一台装了Atlas 300V 24G的推理服务器,近一年里一直在上面跑目标检测项目,从模型转换到推理服务、…

2026/9/25 8:42:54

Atlas 300V 24G上跑通YOLO:昇腾推理部署全流程解析

搞AI算法工程的朋友,这两年应该没少被“国产算力”“昇腾生态”“Atlas”这几个词刷屏。尤其是做边缘视频分析、工业质检、智慧园区这类项目的团队,经常会在选型阶段卡在同一个问题上:手里的YOLO模型,到底怎么跑到华为Atlas上&…

2026/9/25 8:42:54

DBD仿真中电子密度分布的建模与求解全流程解析

1. 为什么盯着电子密度分布:DBD仿真的真正价值做介质阻挡放电(Dielectric Barrier Discharge, DBD)仿真的人,十有八九第一眼盯的都是放电形态和击穿电压,但真到了工业落地这一步,才能真正体会到&#xff1a…

2026/9/25 8:42:54

基于atlas平台的YOLO模型部署与推理优化实践

1. 先聊清楚 atlas 到底是个什么项目先说结论:atlas 不是某个单一算法,也不是某个跑分工具,而是一整套面向视觉任务(尤其是目标检测类模型)的部署与在线推理解决方案。简单点说,它的核心工作是:…

2026/9/25 8:42:54

AI编程驱动视频自动化:ffmpeg+Remotion+Manim+Claude Code工作流

1. 从"video-use"这个模糊标题说起:我到底想解决什么问题第一次看到"video-use"这个标题,加上空白的正文和关键词,我脑子里其实也愣了一下。但结合热搜词里那一串Claude Code、ffmpeg、Remotion、Manim,我大概…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑