Maven Profile
一个项目通常都会有多个不同的运行环境,例如开发环境,测试环境、生产环境等。而不同环境的构建过程很可能是不同的,例如数据源配置、插件、以及依赖的版本等。每次将项目部署到不同的环境时,都需要修改相应的配置,这样重复的工作,不仅浪费劳动力,还容易出错。为了解决这一问题,Maven 引入了 Profile 的概念,通过它可以为不同的环境定制不同的构建过程。
<profiles>
<profile>
<!--不同环境Profile的唯一id-->
<id>dev</id>
<properties>
<!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
<profiles.active>dev</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
</profiles>
可以看到定义了多个profile,每个profile都有唯一的id,也包含properties属性。这里为每个profile都定义一个名为profiles.active的properties,每个环境的值不同。当我们打包项目时,激活不同的环境,profiles.active字段就会被赋予不同的值。
2.2 激活方式
1. 通过maven命令参数
即在使用maven打包时通过-P参数,-P后跟上profile的唯一id,如
mvn clean package -Ptest
2. 通过pom文件里的activation属性
<profile> <id>prod</id> <properties> <profiles.active>prod</profiles.active> </properties> <!--activation用来指定激活方式,可以根据jdk环境,环境变量,文件的存在或缺失--> <activation> <!--配置默认激活--> <activeByDefault>true</activeByDefault> <!--通过jdk版本--> <!--当jdk环境版本为1.5时,此profile被激活--> <jdk>1.5</jdk> <!--当jdk环境版本1.5或以上时,此profile被激活--> <jdk>[1.5,)</jdk> <!--根据当前操作系统--> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> <!--通过系统环境变量,name-value自定义--> <property> <name>env</name> <value>test</value> </property> <!--通过文件的存在或缺失--> <file> <missing>target/generated-sources/axistools/wsdl2java/ com/companyname/group</missing> <exists/> </file> </activation> </profile>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)