当前位置: 首页 > 知识库问答 >
问题:

如果上传失败,Nexus工件上传插件不会失败

颜阳炎
2023-03-14

我创建了一个声明性管道

  1. 使用maven构建神器
  2. 将工件上传到Nexus存储

使用的插件-Nexus工件上传器插件

Nexus-Sonatype NexusOSS 3.17

但是在这里,当上传神器到nexus repo失败时,管道没有失败,它显示为成功。我查了一下,很多其他人都报告了这个问题。

那么,如果上传失败,我可以在这里添加任何解决方法,使我的管道失败吗?

我已经附上了发布神器阶段和截图

    stage("Publish to Nexus") {

    environment { 
                        tag_version= sh (returnStdout: true, script: 'mvn -f core build-helper:parse-version help:evaluate -Dexpression=project.version -q -DforceStdout').trim()
                    }
    steps {

        sh 'echo "tag_version=$tag_version"'

        script {
                    
                    nexusArtifactUploader(
                        nexusVersion: NEXUS_VERSION,
                        protocol: NEXUS_PROTOCOL,
                        nexusUrl: NEXUS_URL,
                        groupId: "com.cable",
                        version: tag_version,
                        repository: NEXUS_REPOSITORY,
                        credentialsId: NEXUS_CREDENTIAL_ID,
                        artifacts: [
                            // Artifact generated such as .jar, .ear and .war files.
                            [artifactId: 'core',
                            classifier: '',
                            file: "./core/target/core-$tag_version-jar-with-dependencies.jar",
                            type: 'jar'],
                        ]
                    );

                
            }
        }
    }

控制台输出

Failed to deploy artifacts: Could not transfer artifact com.cable:core:jar:8.6.1 from/to snapshots (https://nexus.yo-digital.com/repository/snapshots): Failed to transfer file: https://nexus.yo-digital.com/repository/snapshots/com/cable/core/8.6.1/core-8.6.1.jar. Return code is: 400, ReasonPhrase:Repository version policy: SNAPSHOT does not allow version: 8.6.1.
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // ws
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    Finished: SUCCESS

共有1个答案

孟成文
2023-03-14

我发现这是插件(Nexus工件上传器)的问题。因此,为了在出现任何此类情况时使管道失败,我们可以添加一个阶段,该阶段将检查控制台输出日志,并在出现任何“错误”字符串时使管道失败。

        stage('Results') 
        {
           steps 
           {
              script 
              {
                  def logz = currentBuild.rawBuild.getLog(10000);
                  def result = logz.find { it.contains('Failed to deploy artifacts') }
                  if (result) 
                  {
                     error (result)
                  }
               }
            }
         }
 类似资料:
  • 问题内容: 如何通过使用jenkins shell自动生成版本,将工件上传到nexus?我正在使用此脚本,我想在上传工件时自动生成版本。 问题答案: 您可以在Jenkins管道中使用变量来指定工件版本。 为此,有几种选择: 如果您想在期间将工件发布到Nexus ,则可以使用file中的参数。为此,您需要将此变量放入标记。例如, 然后提供给在詹金斯管道maven的命令:。 您也可以使用 Nexus

  • 更新:如果你也有同样的问题,请在这篇文章中找到最多支持的答案。我运行了,发现问题中的项目实际上有两次部署阶段的执行。取消其中一个死刑解决了我的问题。

  • 问题内容: 我试图让Blueimp的Jquery File Upload插件在我的网站上正常工作,但是我一生都无法用它来上传文件。我整天都在努力,被困住了。它将上传文件并将其提交到UploadHandler类,但是在尝试完成功能时,它将达到: 但这总是返回0。我无法弄清楚为什么无法上传该文件。我得到的完整答复是: 仅实例化UploadHandler,仅此而已。 如果您想查看有关UploadHand

  • 我面临这个问题,当我想上传一个应用程序在谷歌播放商店:- 上传失败您上传了带有无效证书的APK或Android应用程序包。您需要使用当前有效的证书签署您的APK或Android应用程序捆绑包。了解更多关于签名的信息。 恳求帮助不:我通过改变pc的日期来解决

  • 问题内容: 我对带有cURL的简单文件上传帖子有问题…我做了很多次,但是在这种情况下,我总是从服务器收到“ 417 Expectation Failed”。当我尝试使用浏览器发布信息时,它可以100%正常运行,但不能使用cURL。 那是我的配置: 我简单的测试形式有效: 这是image_upload.php: 我的cURL脚本(image_upload.sh)如下所示: 和服务器头: 我不知道错误

  • 问题内容: 我通过世博会创建了该应用程序。我通过应用程序加载程序上传了ipa,但下面的消息被拒绝了。问题是什么? 该捆绑软件无效-/Payload/ExpoKitApp.app/FacebookSDKStrings.bundle的Info.plist文件丢失或无法读取。 无效的捆绑软件-“ /Payload/ExpoKitApp.app/FacebookSDKStrings.bundle”中的捆绑