我在linux-version上使用maven verison 3.3.9:" 4.4.0-43-generic"。不知何故,我可以在控制台上使用这种方式运行maven命令:
mvn -pl '!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed' -P compileWithGradle,nightly,flex-debug clear
单引号内的双引号我不知道原因,但它在控制台上以这种方式工作。我有一个jenkins pipline我想使用这个命令,但它不能正常工作我使用:
sh ''' mvn -pl '"!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed"' -P compileWithGradle,nightly,flex-debug clear '''
或使用:
sh """ mvn -pl '"!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed"' -P compileWithGradle,nightly,flex-debug clear """
结果将在"!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed" OR '!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed'
有人可以告诉我在jenkins脚本或maven目标内使用的正确方法。
答案 0 :(得分:0)
您可以使用
sh 'mvn -pl "!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed" -P compileWithGradle,nightly,flex-debug clear'
它应该有用。
答案 1 :(得分:0)
如果使用bash shell,你必须逃脱!用反斜杠\
。这很有效。
mvn -pl \!com.mycom.hp.comp:zonegtools
啊,但这不适用于Jenkins groovy代码。(2反斜杠)
sh "mvn -pl \\!com.mycom.hp.comp:zonegtools"
这在jenkins + groovy + maven
中不起作用MVN错误:无法在反应堆中找到所选项目:!com.mycom.hp.comp:zonegtools
答案 2 :(得分:0)
我可以像这样在groovy文件中运行mvn命令。你可以试试这个吗?
run('mvn install:install-file -Dhttps.protocols=TLSv1.2 -DgroupId=com.sample-DartifactId=sample -Dversion=2.1.0 -Dpackaging=jar -Dfile=src/main/lib/sample-2.1.0.jar -DgeneratePom=true -Dmaven.test.skip=true')