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

Azure DevOps中Maven部署JAR时出现“未找到传输协议”错误求助

错误分析与修复方案

核心问题定位

你遇到的No transfer protocol found错误,本质是Maven无法正确解析部署目标URL,根源来自YAML配置的格式错误和参数不匹配。

1. YAML参数换行导致语法错误

你的options参数换行后存在格式问题:

  • 换行后的- Dpackaging=jar多了一个空格,应改为-Dpackaging=jar
  • - DrepositoryId="$AZURE_FEED_ID"同样多了空格,且变量引用格式错误,应改为-DrepositoryId=$(AZURE_FEED_ID)
    这种格式错误会导致Maven无法识别完整的参数名,进而无法正确读取URL配置。

2. Azure DevOps变量引用格式错误

在Azure Pipelines YAML中,引用预定义或自定义变量必须使用$(变量名)的格式,而非Shell风格的$变量名。所以:

  • 将$AZURE_FEED_ID替换为$(AZURE_FEED_ID)
  • 将$AZURE_FEED_URL替换为$(AZURE_FEED_URL)

3. Repository ID一致性问题

POM文件中distributionManagement节点的repository id为demo-mule,而你在YAML中指定的repositoryId是$(AZURE_FEED_ID),两者必须完全一致:

  • 要么直接将YAML中的-DrepositoryId值改为demo-mule
  • 要么确保$(AZURE_FEED_ID)变量的取值就是demo-mule
    Maven依赖这个id匹配认证信息,不一致会导致部署时无法找到正确的凭据。

4. 可选优化:减少冗余参数

既然你已经在POM中配置了distributionManagement,可以移除options中的-Durl和-DrepositoryId参数,让Maven直接读取POM中的配置,降低出错概率。

修改后的YAML示例

- task: Maven@3
  displayName: 'Maven Deploy'
  inputs:
   mavenPomFile: 'pom.xml'
   goals: 'deploy:deploy-file'
   options: '-DgroupId="com.mycompany" -DartifactId="s-demo-cicd" -Dversion="1.0.1" -Dpackaging=jar -Dfile="demo-1.0.1-mule-application.jar" -DgeneratePom="true" -DrepositoryId="demo-mule"'

内容的提问来源于stack exchange,提问作者Vamsi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:35:24