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

如何在Jenkins Pipeline中向Maven传递多行字符串?

解决Jenkins Pipeline多行字符串传递给Maven的报错问题

问题根源

用户输入的多行字符串包含换行符,直接在Maven命令中使用${DATA}时,换行符会将命令拆分为多行,Maven会把换行后的内容误识别为新的生命周期阶段,从而抛出未知生命周期阶段的错误。

可行解决方案

方法1:转义多行字符串中的换行符

在Jenkins Pipeline里先处理用户输入的多行内容,把换行符替换为Maven能正确解析的转义形式:

// 假设userInput是用户输入的多行字符串变量
def processedData = userInput.replace('\n', '\\n')
env.DATA = processedData

执行Maven命令时,用引号完整包裹${DATA}参数值:

mvn test -Dtest="TestclassName" -DDATA="${DATA}"

方法2:直接在命令中处理并包裹参数

用Groovy的三重引号编写shell命令,同时对换行符做转义处理:

sh """
mvn test -Dtest="TestclassName" -DDATA='${userInput.replace('\n', '\\n')}'
"""

还原Java中的换行符

如果业务需要保留原多行格式,Java代码中获取参数后可还原换行:

String paramValue2 = System.getProperty("DATA").replace("\\n", "\n");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:52:40