Maven 在工作与家庭网络中的代理设置
代理配置属于 Maven 设置。选择一个设置文件是切换网络环境的可预期方式。
回家的火车上,项目本身没有变,但它的网络路径变了。在办公室可用的代理地址,在家里可能无法访问。这是环境设置,不是把雇主的代理写进项目 POM 的理由。
Maven 的设置模型把代理定义放在顶层 proxies 节中。设置 profile 并不提供该节的第二个任意副本。在 profile 下添加一段形似代理的 XML 片段,并不会让它成为受支持的网络切换机制。
一个直接的做法是为每种环境维护一份获批的设置,并选择合适的那一份:
mvn --settings /path/to/settings-office.xml verify
该示例显式选择用户设置。请使用适合本次构建的命令和文件;这并不意味着该文件应连同凭据一起提交。
让差异保持很小
记录真正会变化的设置:活动代理、绕过主机、镜像以及所需的服务器账号。第二个文件不应悄悄删除无关的仓库策略,也不应使用旧密码。
检查仍会与所选用户设置合并的任何全局设置。显式文件让输入可见,但这并不意味着 Maven 没有其他配置来源。
自动切换需要真实的信号
Maven 无法按通常意义从笔记本的位置推断出“办公室”。自动方案需要受支持的外部发现或管理机制,以及在该机制不可用时的既定响应。
要小心那些旨在在家里关闭代理的宽泛绕过规则。它们也可能影响内部目标,或掩盖请求实际走了哪条路径。
首次修复时,优先选择可见、显式的设置选择。一旦它在两种环境中都能工作,任何自动化都可以复现这份已知配置,而不必反复重写项目的构建说明。