Expected behavior: In pipeline: withMaven( maven: mvnId, // Maven installation declared in the Jenkins "Global Tool Configuration" mavenSettingsConfig: mvnSettingsId, // Maven settings.xml file defined with the Jenkins Config File Provider Plugin mavenLocalRepo: mavenLocalRepo ) { result = sh( returnStdout: true, script: 'mvn org.apache.maven.plugins:maven-help-plugin::evaluate -Dexpression=project.version -q -DforceStdout -B" ) } result variable value is "1.5.0" Actual behavior: result variable is: "----- withMaven Wrapper script ----- Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T19:49:05Z) Maven home: /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/mvn-3.5.3 Java version: 1.8.0_161, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-693.17.1.el7.x86_64", arch: "amd64", family: "unix" 1.5.0" Analysis: withMaven wrapper adds stdout info, that cannot be removed, disabled, according to source: https://github.com/jenkinsci/pipeline-maven-plugin/blob/b150161c91769de782af6c5b2ebe7907a4bd17b0/jenkins-plugin/src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepExecution2.java However, that breaks the way we gets output with mvn command. Workaround: specifically to maven-help-plugin, I can redirect output to a file, and readFile that. Long-term solution (exclusive choice): 1/ add a silent field to withMaven, to disable any output? 2/ add a showDebug field to show debug info 3/ do not show debug info, except when mvn command fails Thank you. |