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

GitHub Actions中Windows PowerShell执行Maven命令报语法错误排查

问题排查:GitHub Actions Windows PowerShell下Maven构建语法错误

在GitHub Actions的Windows(PowerShell)环境执行Maven构建时,出现The syntax of the command is incorrect错误,相关原代码如下:

$args - > "-Dkeystore.filename=E:\LOCAL.Public.p12" "-nsu" "-Djavax.net.ssl.keyStore=NONE" "-Djavax.net.ssl.keyStoreType=Window" "-D javax.net.ssl.trustStore=NUL" "-Djavax.net.ssl.trustStoreType=Windows" "-DMULE_LOG_BASE=E:\log"

mvn clean package -s "Devops-Framework\config\mvn_settings.xml" "-Dserver.username=${{inputs.JFROG_USER}}" "-Dserver.password=${{inputs.JFROG_APIKEY}}" $args

错误点分析:

  • 变量赋值语法错误:$args - >是无效的PowerShell赋值写法,PowerShell中数组赋值需用@(...)结构,->会被解析为非法命令,直接触发语法错误。
  • 参数格式错误:"-D javax.net.ssl.trustStore=NUL"中-D与参数名之间存在空格,Maven无法识别该参数格式,导致命令解析失败。
  • 参数拼写错误:"-Djavax.net.ssl.keyStoreType=Window"少了末尾的s,应为Windows,虽不直接引发当前语法错误,但会导致后续运行时SSL配置失效。
  • 数组传递问题:PowerShell中直接使用$args传递数组参数可能出现解析异常,需用@args展开数组,确保每个参数被独立传递。

修正后的代码:

# 正确定义Maven参数数组
$mavenArgs = @(
    "-Dkeystore.filename=E:\LOCAL.Public.p12",
    "-nsu",
    "-Djavax.net.ssl.keyStore=NONE",
    "-Djavax.net.ssl.keyStoreType=Windows",
    "-Djavax.net.ssl.trustStore=NUL",
    "-Djavax.net.ssl.trustStoreType=Windows",
    "-DMULE_LOG_BASE=E:\log"
)

# 使用@args展开数组传递参数
mvn clean package -s "Devops-Framework\config\mvn_settings.xml" "-Dserver.username=${{inputs.JFROG_USER}}" "-Dserver.password=${{inputs.JFROG_APIKEY}}" @mavenArgs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:47:52