HoRain云--Maven 构建配置文件

发布时间:2026/11/14 16:22:16

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/11/13 4:45:17

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

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

2026/11/10 11:36:14

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

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

2026/11/13 21:26:31

JVM-04-类的生命周期

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

2026/11/14 16:22:13

你真的知道安监局低压电工证复审怎么在网上查询吗

你真的知道安监局低压电工证复审怎么在网上查询吗 你是不是也遇到过这种情况:手里拿着低压电工证,眼看快到期了,却不知道去哪报名复审,怕被中介坑了钱还办不了事?别急,今天咱们就来聊聊 安监局低压电工证复审 这事,从 网上查询…

2026/11/14 16:22:13

常德电工证报名方式多久拿证?证书过期了不知道怎么复审延期

常德电工证报名方式多久拿证?证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,你是不是也遇到过这种情况?特种作业证不是一劳永逸的,每3-5年就要复审一次,否则证书作废,直接影响工作和项目参与资格。如果你正准备报考常德电工证,或者已…

2026/11/14 16:22:13

现在电工证是哪种通过率揭秘:工地太忙根本没时间复习考试怎么办?

现在电工证是哪种通过率揭秘:工地太忙根本没时间复习考试怎么办? 工地太忙根本没时间复习考试,这是很多一线电工的真实写照。你是不是也常常因为工地上活太多,没时间复习电工证考试内容,导致考试频频失利?别急,今天咱们就来聊聊【现在电工证是哪种】这…

2026/11/13 22:33:32

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/14 0:06:39

土木特种工考证官方报名入口怎么找 之前考的证在外省能不能转过来

土木特种工考证官方报名入口怎么找 之前考的证在外省能不能转过来 之前考的证在外省能不能转过来?这个问题我太熟悉了,作为一名干了十几年的特种作业证书办理从业者,每年都会遇到不少像你一样在外地考了证,回来却发现无法直接使用的学员。别急,今天我就…

2026/11/14 0:06:39

电工证要多久多钱保姆级教程:工地太忙根本没时间复习考试

电工证要多久多钱保姆级教程:工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,你不是一个人。在信阳浉河区,很多刚进入工地的电工都面临这样的困境:工作强度大,时间碎片化,根本没有系统复习考试的机会。但电工证是上岗的硬门槛,…

2026/11/13 22:32:11

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/13 12:14:39

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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