记录一次诡异的Maven Profile不生效的问题
记录一次诡异的Maven Profile不生效的问题
现象
maven 打包之后,复制的 profile对应的resource文件总是不正确的。
即便是加了
mvn clean package -P test
,profile每次都是复制了 dev这个profile,很是奇怪。
诊断
mvn resource:resource
用该命令,可以快速测试复制resources配置文件是否正确。
但是target 文件夹内依然是dev的。
Apache Maven Help Plugin
mvn help:active-profiles
输出类似:
profile dev (external)
这我就突然想到,external 是不是外部的,也就是与本项目无关的。
结果打开 maven的 settings.xml文件,划到下面发现了下面的内容:
<profile>
<id>dev</id>
<repositories>
<repository>
<id>spring-plugin</id>
<name>spring-plugin</name>
<url>http://repo.spring.io/plugins-release/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-plugin</id>
<name>spring-plugin</name>
<url>http://repo.spring.io/plugins-release/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
....
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
总结
然后恍然大雾,原来maven用了这么多年,依旧没有彻底弄明白。。这是到处复制maven settings配置,而不清楚或者误解其作用导致的隐患啊。
这里的profile dev可是全局激活的啊,幸好生产环境的 没有使用maven profile。
不然 无论怎么写命令,dev永远是激活的。
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!