java.lang.NoSuchFieldError:gradle artifactoryPublish任务期间的实例错误

java.lang.NoSuchFieldError:gradle artifactoryPublish任务期间的实例错误,gradle,plugins,dependencies,war,artifactory,Gradle,Plugins,Dependencies,War,Artifactory,我们正在尝试将配置了gradle 4.0的项目迁移到gradle 5.6(最新版本)。在发布war包期间,生成此异常的httpclient(apache)组件似乎存在依赖性问题 这是一个gradle项目,根(容器)项目包括一个用于打包的war插件,jfrog artifactory 4.9.8用于发布,所有子项目都是java项目,并提供了它们的依赖项列表(包括httpclient 4.5.9和httpcore 4.4.11) ./gradlew artifactoryPublish 出了什么问

我们正在尝试将配置了gradle 4.0的项目迁移到gradle 5.6(最新版本)。在发布war包期间,生成此异常的httpclient(apache)组件似乎存在依赖性问题

这是一个gradle项目,根(容器)项目包括一个用于打包的war插件,jfrog artifactory 4.9.8用于发布,所有子项目都是java项目,并提供了它们的依赖项列表(包括httpclient 4.5.9和httpcore 4.4.11)

./gradlew artifactoryPublish

  • 出了什么问题: 任务“:artifactoryDeploy”的执行失败。 实例

原因:java.lang.NoSuchFieldError:实例
位于org.apache.http.conn.ssl.SSLConnectionSocketFactory(SSLConnectionSocketFactory.java:144)
位于org.apache.http.impl.conn.poolghttpclientconnectionmanager.getDefaultRegistry(poolghttpclientconnectionmanager.java:109)
位于org.apache.http.impl.conn.PoolighttpClientConnectionManager。(PoolighttpClientConnectionManager.java:116)
位于org.jfrog.build.client.PreemptiveHttpClient。(PreemptiveHttpClient.java:57)
位于org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:145)
位于org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:140)
位于org.jfrog.build.client.ArtifactoryHttpClient.executeGetRequest(ArtifactoryHttpClient.java:184)
位于org.jfrog.build.client.ArtifactoryHttpClient.getVersion(ArtifactoryHttpClient.java:154)
位于org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBaseClient.getArtifactoryVersion(ArtifactoryBaseClient.java:109)
位于org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.tryChecksumDeploy(ArtifactoryBuildInfoClient.java:705)
位于org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.uploadFile(ArtifactoryBuildInfoClient.java:664)
位于org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.doDeployArtifact(ArtifactoryBuildInfoClient.java:367)
位于org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:355)
位于org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:340)
位于org.jfrog.gradle.plugin.artifactory.task.DeployTask.deployArtifacts(DeployTask.java:262)
位于org.jfrog.gradle.plugin.artifactory.task.DeployTask.prepareAndDeploy(DeployTask.java:113)
位于org.jfrog.gradle.plugin.artifactory.task.DeployTask.collectProjectBuildInfo(DeployTask.java:50)
位于org.jfrog.gradle.plugin.artifactory.task.DeployTask.taskAction(DeployTask.java:44)
位于org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
位于org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)

我猜您的项目使用的另一个插件使用的是不同版本的apache http客户端。我会试着找到那个插件。一旦找到,请检查哪个插件使用的是旧版本的客户端,然后请插件维护人员对其进行升级。看起来我无法从这个依赖项解决方案中出来,因为该项目使用的是“sardine”(用于WebDav)、“smiley http proxy servlet”和“jfrog gradle插件”。不幸的是,“沙丁鱼”最新工件(5.9)依赖于org.apache.httpcomponents.httpclient版本4.5.1,而其他版本则依赖于4.5.2。。。我试图强制使用4.5.2或4.5.1,但在“artifactoryPublish”任务中我得到了相同的错误!!我猜您的项目使用的另一个插件使用的是不同版本的ApacheHTTP客户端。我会试着找到那个插件。一旦找到,请检查哪个插件使用的是旧版本的客户端,然后请插件维护人员对其进行升级。看起来我无法从这个依赖项解决方案中出来,因为该项目使用的是“sardine”(用于WebDav)、“smiley http proxy servlet”和“jfrog gradle插件”。不幸的是,“沙丁鱼”最新工件(5.9)依赖于org.apache.httpcomponents.httpclient版本4.5.1,而其他版本则依赖于4.5.2。。。我试图强制使用4.5.2或4.5.1,但在“artifactoryPublish”任务中我得到了相同的错误!!
-- root
plugins {
    id 'war'
    id 'maven-publish'
    id 'org.sonarqube' version '2.7'
    id 'net.researchgate.release' version '2.6.0'
    id 'com.github.spotbugs' version '2.0.0' apply false
    id 'com.jfrog.artifactory' version '4.9.8'
}

-- subprojects
dependencies {
      ..
      compile 'org.apache.httpcomponents:httpclient:4.5.9'
      ..
      configurations.all {
            force 'org.apache.httpcomponents:httpcore:4.4.11'
            force 'org.apache.httpcomponents:httpclient:4.5.9'
      }
}
Caused by: java.lang.NoSuchFieldError: INSTANCE
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:109)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:116)
        at org.jfrog.build.client.PreemptiveHttpClient.<init>(PreemptiveHttpClient.java:57)
        at org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:145)
        at org.jfrog.build.client.ArtifactoryHttpClient.getHttpClient(ArtifactoryHttpClient.java:140)
        at org.jfrog.build.client.ArtifactoryHttpClient.executeGetRequest(ArtifactoryHttpClient.java:184)
        at org.jfrog.build.client.ArtifactoryHttpClient.getVersion(ArtifactoryHttpClient.java:154)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBaseClient.getArtifactoryVersion(ArtifactoryBaseClient.java:109)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.tryChecksumDeploy(ArtifactoryBuildInfoClient.java:705)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.uploadFile(ArtifactoryBuildInfoClient.java:664)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.doDeployArtifact(ArtifactoryBuildInfoClient.java:367)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:355)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:340)
        at org.jfrog.gradle.plugin.artifactory.task.DeployTask.deployArtifacts(DeployTask.java:262)
        at org.jfrog.gradle.plugin.artifactory.task.DeployTask.prepareAndDeploy(DeployTask.java:113)
        at org.jfrog.gradle.plugin.artifactory.task.DeployTask.collectProjectBuildInfo(DeployTask.java:50)
        at org.jfrog.gradle.plugin.artifactory.task.DeployTask.taskAction(DeployTask.java:44)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)