【问题标题】:Artifactory depoyment using Jenkins failed使用 Jenkins 的 Artifactory 部署失败
【发布时间】:2020-09-30 17:20:37
【问题描述】:

Artifactory 版本 - 7.5.5

Jenkins Artifactory 插件版本 - 3.6.2

Maven 集成插件版本 - 3.6

Apache HttpComponents Client 4.x API 插件版本 - 4.5.10-2.0

管道脚本:

node {
  withMaven(maven: 'RnDMaven') { {
    def server = Artifactory.server('RnDArtifactory')
    def rtMaven = Artifactory.newMavenBuild()
    rtMaven.deployer server : server , releaseRepo : "MGB", snapshotRepo : "MGB"
    def buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install' 
  }
}

我使用上述配置和管道脚本进行了 Artifactory maven 构建,因此出现以下错误。做了各种事情来解决它,例如更改插件的版本,甚至下载了最新版本的 Jenkins,但结果是一样的。

java.lang.NoSuchFieldError: org.apache.http.conn.ssl.SSLConnectionSocketFactory 的实例。

错误原因是上面提到的。在 Internet 和 artifactory 论坛中找到的各种解决方案都指向插件版本中的冲突。但即使在升级之后,我也得到了相同的结果。完整的跟踪如下。

[错误] org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() 侦听器失败:java.lang.RuntimeException: java.util.concurrent.ExecutionException:java.lang.NoSuchFieldError: 实例在 org.jfrog.build.extractor.ModuleParallelDeployHelper.deployArtifacts(ModuleParallelDeployHelper.java:37) 在 org.jfrog.build.extractor.maven.BuildDeploymentHelper.deploy(BuildDeploymentHelper.java:88) 在 org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded(BuildInfoRecorder.java:173) 在 org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:64) 在 org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:170) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357) 引起:java.util.concurrent.ExecutionException: java.lang.NoSuchFieldError:实例在 java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) 在 java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.deployArtifacts(ModuleParallelDeployHelper.java:35) ... 18 更多原因:java.lang.NoSuchFieldError: INSTANCE at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:151) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:115) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:122) 在 org.jfrog.build.client.PreemptiveHttpClientBuilder.buildConnectionManager(PreemptiveHttpClientBuilder.java:143) 在 org.jfrog.build.client.PreemptiveHttpClientBuilder.build(PreemptiveHttpClientBuilder.java:113) 在 org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:177) 在 org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:159) 在 org.jfrog.build.client.ArtifactoryHttpClient.executeGetRequest(ArtifactoryHttpClient.java:216) 在 org.jfrog.build.client.ArtifactoryHttpClient.getVersion(ArtifactoryHttpClient.java:185) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBaseClient.getArtifactoryVersion(ArtifactoryBaseClient.java:127) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.tryChecksumDeploy(ArtifactoryBuildInfoClient.java:717) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.uploadFile(ArtifactoryBuildInfoClient.java:676) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.doDeployArtifact(ArtifactoryBuildInfoClient.java:379) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:367) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.lambda$deploy$4(ModuleParallelDeployHelper.java:45) 在 java.lang.Iterable.forEach(Ite​​rable.java:75) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.deploy(ModuleParallelDeployHelper.java:43) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.lambda$null$1(ModuleParallelDeployHelper.java:33) 在 java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) [错误] 内部错误: java.lang.RuntimeException: org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() 侦听器失败:java.util.concurrent.ExecutionException: java.lang.NoSuchFieldError: 实例 -> [帮助 1] org.apache.maven.InternalErrorException:内部错误: java.lang.RuntimeException: org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() 侦听器失败:在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357) 引起:java.lang.RuntimeException: org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() 侦听器失败:在 org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded(BuildInfoRecorder.java:182) 在 org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:64) 在 org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:170) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) ... 11 更多原因:java.lang.RuntimeException: java.util.concurrent.ExecutionException:java.lang.NoSuchFieldError: 实例在 org.jfrog.build.extractor.ModuleParallelDeployHelper.deployArtifacts(ModuleParallelDeployHelper.java:37) 在 org.jfrog.build.extractor.maven.BuildDeploymentHelper.deploy(BuildDeploymentHelper.java:88) 在 org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded(BuildInfoRecorder.java:173) ... 16 更多原因:java.util.concurrent.ExecutionException: java.lang.NoSuchFieldError:实例在 java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) 在 java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.deployArtifacts(ModuleParallelDeployHelper.java:35) ... 18 更多原因:java.lang.NoSuchFieldError: INSTANCE at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:151) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:115) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:122) 在 org.jfrog.build.client.PreemptiveHttpClientBuilder.buildConnectionManager(PreemptiveHttpClientBuilder.java:143) 在 org.jfrog.build.client.PreemptiveHttpClientBuilder.build(PreemptiveHttpClientBuilder.java:113) 在 org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:177) 在 org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:159) 在 org.jfrog.build.client.ArtifactoryHttpClient.executeGetRequest(ArtifactoryHttpClient.java:216) 在 org.jfrog.build.client.ArtifactoryHttpClient.getVersion(ArtifactoryHttpClient.java:185) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBaseClient.getArtifactoryVersion(ArtifactoryBaseClient.java:127) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.tryChecksumDeploy(ArtifactoryBuildInfoClient.java:717) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.uploadFile(ArtifactoryBuildInfoClient.java:676) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.doDeployArtifact(ArtifactoryBuildInfoClient.java:379) 在 org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:367) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.lambda$deploy$4(ModuleParallelDeployHelper.java:45) 在 java.lang.Iterable.forEach(Ite​​rable.java:75) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.deploy(ModuleParallelDeployHelper.java:43) 在 org.jfrog.build.extractor.ModuleParallelDeployHelper.lambda$null$1(ModuleParallelDeployHelper.java:33) 在 java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-plugins artifactory apache-httpclient-4.x


    【解决方案1】:

    请试试这个:

    node {
        def server = Artifactory.server('RnDArtifactory')
        def rtMaven = Artifactory.newMavenBuild()
        rtMaven.tool = 'RnDMaven'
        rtMaven.deployer server : server , releaseRepo : "MGB", snapshotRepo : "MGB"
        def buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install' 
    }
    

    这将保证使用“RnDMaven”Maven 工具。我不确定它是否会有所帮助,但这是运行 Maven Artifactory 作业的官方方式。

    示例在这里:https://github.com/jfrog/project-examples/blob/master/jenkins-examples/pipeline-examples/scripted-examples/maven-example/Jenkinsfile

    文档在这里:https://www.jfrog.com/confluence/display/JFROG/Scripted+Pipeline+Syntax#ScriptedPipelineSyntax-MavenBuildswithArtifactory

    【讨论】:

    • 感谢您的建议@yadhavi,但这并不能解决问题。
    猜你喜欢
    • 2015-01-24
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多