我创建了一个声明性管道
使用的插件-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
我发现这是插件(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”中的捆绑