【问题标题】:How to run maven command using groovy script如何使用 groovy 脚本运行 maven 命令
【发布时间】:2018-02-05 21:24:33
【问题描述】:

我在 linux-version: "4.4.0-43-generic" 上使用 maven verison 3.3.9。不知何故,我可以在控制台上使用这种方式运行 maven 命令:

 mvn -pl '!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed' -P compileWithGradle,nightly,flex-debug clear

单引号内的双引号我不知道原因,但它在控制台上以这种方式工作。我有一个 jenkins 管道,我想在其中使用这个命令,但我使用的它不起作用:

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 目标中使用的正确方法。

【问题讨论】:

    标签: shell maven jenkins groovy jenkins-pipeline


    【解决方案1】:

    你可以使用

    sh 'mvn -pl "!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed" -P compileWithGradle,nightly,flex-debug clear'
    

    它应该可以工作。

    【讨论】:

    • 不工作,我已经试过了。实际上在詹金控制台上它显示如下: mvn -pl "com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed" -P compileWithGradle,nightly,flex-debug clear
    • 您使用的是 jenkins 脚本化管道吗?试试sh 'mvn -pl "!com.mycom.hp.comp:zonegtools,!com.mycom.hpe:testbed" -P compileWithGradle,nightly,flex-debug clear'。它应该可以在没有额外的单引号的情况下工作。
    • 是的,我正在使用管道并且已经尝试过,但它不是这样工作的。
    • 我已将 maven 更改为 3.1.1 并更新了一个需要单引号的问题。
    • @user565 “不工作”是什么意思?可以放日志吗?
    【解决方案2】:

    如果使用 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

    【讨论】:

      【解决方案3】:

      我可以像这样在 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')
      

      【讨论】:

      • Groovy 中的运行命令是什么?你是如何让 maven 命令从 Groovy 脚本运行的?
      猜你喜欢
      • 2015-12-19
      • 2013-09-14
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多