You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Jenkins传递凭证至Maven并正确配置settings.xml

解决Maven从环境变量读取密码被误判为加密的问题

问题根源

Maven会自动检查<password>字段的值,若内容以{开头,就会判定为加密串并尝试解密。如果你的环境变量值刚好包含这类格式,或者Maven没正确解析${env.DEV_ARTIFACTORY_TOKEN}这个引用(把整个字符串当成密码值),就会触发解密失败的错误。

最优配置方案

从Maven 3.2.1版本开始,官方提供了<cleartextPassword>字段,专门用来指定明文密码,不会触发解密逻辑,同时支持环境变量插值。直接替换原配置即可:

<server>
  <id>dev-artifactory</id>
  <username>${env.DEV_ARTIFACTORY_USER}</username>
  <cleartextPassword>${env.DEV_ARTIFACTORY_TOKEN}</cleartextPassword>
</server>

兼容旧版本的替代方案

如果无法升级Maven版本,可通过以下两种方式解决:

  • 调整Jenkins传递的环境变量值,确保它不以{开头,避免Maven误判;
  • 通过命令行参数传递凭证,再在settings.xml中引用系统属性:
    执行构建时的命令:
    mvn clean install -Ddev-artifactory.user=${env.DEV_ARTIFACTORY_USER} -Ddev-artifactory.token=${env.DEV_ARTIFACTORY_TOKEN}
    
    对应的settings.xml配置:
    <server>
      <id>dev-artifactory</id>
      <username>${dev-artifactory.user}</username>
      <password>${dev-artifactory.token}</password>
    </server>
    

内容的提问来源于stack exchange,提问作者Jan Pešta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 23:28:28