java - GitLab CI maven 项目部署到 Artifactory 异常 block 编码消息正文过早结束 : closing chunk expected site:stackoverflow. com

标签 java maven gitlab artifactory gitlab-ci

同学们,大家好。我正在尝试在我的项目中实现 gitlab-ci 。我已经创建了所有阶段,除了部署之外它们都可以工作。 作为教材和示例,我使用了以下文章:https://jfrog.com/blog/gitlab-and-artifactory-on-your-mark-get-set-build/

我在 gitlab-ci 文件中有一个阶段:

deploy-artifactory-snapshot:
  image: maven:3.5.0-jdk-8
  stage: deploy-artifactory
  tags:
  - release
  before_script:
  # Install JFrog CLI
  -  curl -fL https://getcli.jfrog.io | sh
  # Configure Artifactory instance with JFrog CLI
  - ./jfrog rt config --url=${ARTIFACTORY_URL} --user=${ARTIFACTORY_USER} --password=${ARTIFACTORY_PASSWORD}
  - ./jfrog rt c show
  # Set the M2_HOME environment variable
  - export M2_HOME=/usr/share/maven
  # Replace the repository name in the configuration.yml to the correct one.
  - sed -i 's,MAVEN_REPO_SNAPSHOT_DEPLOYER,'"$MAVEN_REPO_SNAPSHOT_DEPLOYER"',g' configuration.yml
  - sed -i 's,MAVEN_REPO_RELEASES_DEPLOYER,'"$MAVEN_REPO_RELEASES_DEPLOYER"',g' configuration.yml
  - sed -i 's,MAVEN_REPO_SNAPSHOT_RESOLVER,'"$MAVEN_REPO_SNAPSHOT_RESOLVER"',g' configuration.yml
  - sed -i 's,MAVEN_REPO_RELEASES_RESOLVER,'"$MAVEN_REPO_RELEASES_RESOLVER"',g' configuration.yml
  script:
  # Run the MVN command
  - ./jfrog rt mvn "clean install" configuration.yml --build-name=scdfrestrunner --build-number=$CI_JOB_ID
  # Collect the environment variables
  - ./jfrog rt bce gitlabci-maven-artifactory $CI_JOB_ID
  # Pass the build information to Artifactory
  - ./jfrog rt bp gitlabci-maven-artifactory $CI_JOB_ID

  only:
  - develop

这是我的 Jfrog 应用程序的 configuration.yml 属性文件:

version: 1
type: maven
resolver:
  snapshotRepo: MAVEN_REPO_SNAPSHOT_RESOLVER
  releaseRepo: MAVEN_REPO_RELEASES_RESOLVER
  serverID: Default-Server
deployer:
  snapshotRepo: MAVEN_REPO_SNAPSHOT_DEPLOYER
  releaseRepo: MAVEN_REPO_RELEASES_DEPLOYER
  serverID: Default-Server

每次我尝试通过 gitlab-ci 部署我的 Artifact 时,我都会遇到下一个异常:

Caused by: java.lang.RuntimeException: Error occurred while publishing artifact to Artifactory: /builds/Aleksandr.Shapovalov/scdfrestrunner/target/scdf-rest-runner-1.0-SNAPSHOT.jar. Skipping deployment of remaining artifacts (if any) and build info. at org.jfrog.build.extractor.maven.BuildDeploymentHelper.deployArtifacts(BuildDeploymentHelper.java:316) at org.jfrog.build.extractor.maven.BuildDeploymentHelper.deploy(BuildDeploymentHelper.java:108) at org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded(BuildInfoRecorder.java:173) ... 17 more Caused by: org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closing chunk expected at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:266) at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:225) at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:184) at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.Reader.read(Reader.java:140) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2369) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2348) at org.apache.commons.io.IOUtils.copy(IOUtils.java:2325) at org.apache.commons.io.IOUtils.copy(IOUtils.java:2273) at org.apache.commons.io.IOUtils.toString(IOUtils.java:1041) at org.apache.commons.io.IOUtils.toString(IOUtils.java:1066) at org.jfrog.build.client.ArtifactoryHttpClient.execute(ArtifactoryHttpClient.java:234) at org.jfrog.build.client.ArtifactoryHttpClient.upload(ArtifactoryHttpClient.java:225) at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.uploadFile(ArtifactoryBuildInfoClient.java:687) at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.doDeployArtifact(ArtifactoryBuildInfoClient.java:374) at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:362) at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.deployArtifact(ArtifactoryBuildInfoClient.java:347) at org.jfrog.build.extractor.maven.BuildDeploymentHelper.deployArtifacts(BuildDeploymentHelper.java:314) ... 19 more

有人可以告诉我我错在哪里吗? Artifactory版本是6.0.1 亚搏体育appGitLab社区版11.1.4

更新:

看起来没有任何连接问题,我看到我的构建代理正在从我们的 Artifact 下载。例如,多行之一:

Downloaded: https://artifactory.mycompany.net:443/artifactory/libs-release/org/springframework/boot/spring-boot-starter-parent/2.0.3.RELEASE/spring-boot-starter-parent-2.0.3.RELEASE.pom (12 kB at 17 kB/s) Downloading: https://artifactory.mycompany.net:443/artifactory/libs-release/org/springframework/boot/spring-boot-dependencies/2.0.3.RELEASE/spring-boot-dependencies-2.0.3.RELEASE.pom

我的舞台就在这行之后:

[main] INFO org.jfrog.build.extractor.maven.BuildInfoClientBuilder - Deploying artifact: https://artifactory.mycompany.net:443/artifactory/libs-snapshot-local/net/mycompany/scdf-rest-runner/1.0-SNAPSHOT/scdf-rest-runner-1.0-SNAPSHOT.jar

最佳答案

我会检查您尝试推送的 Artifact 是否已存在于注册表中(artifactory)

当我这样做时,我能够重现该问题。

        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipCachedTaskExecuter.execute(SkipCachedTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:61)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.UncheckedIOException: org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closing chunk expected
        at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:57)
        at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:784)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:751)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
        ... 31 more
Caused by: org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closing chunk expected
        at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:266)
        at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:225)
        at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:184)
        at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
        at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1680)
        at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1659)
        at org.apache.commons.io.IOUtils.copy(IOUtils.java:1636)
        at org.apache.commons.io.IOUtils.copy(IOUtils.java:1611)
        at org.apache.commons.io.IOUtils.toString(IOUtils.java:668)
        at org.jfrog.build.client.ArtifactoryHttpClient.execute(ArtifactoryHttpClient.java:225)
        at org.jfrog.build.client.ArtifactoryHttpClient.upload(ArtifactoryHttpClient.java:216)
        at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.uploadFile(ArtifactoryBuildInfoClient.java:680)
        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:73)

关于java - GitLab CI maven 项目部署到 Artifactory 异常 block 编码消息正文过早结束 : closing chunk expected site:stackoverflow. com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51748436/

相关文章:

java - 如何在 Eclipse 中打开 Java 项目(使用 Maven)? (我使用M2E还是maven-eclipse-plugin)

java - 正则表达式提取点符号前后的数据?

java - Gradle:从下载的 POM 中获取 Maven 存储库列表

java - 重新打包 war 而不使用 mvn package 仅在少数依赖项目上运行验证

scala - Gitlab Auto Devops中的regex用于scoverage-gradle插件

java - 强制 java applet 在 32 位而不是 64 位 JRE 中运行

java - 突出显示 TextView 中的文本行,包括所有宽度

java - 在集成测试之前启动主应用程序和测试应用程序

gitlab - 如何从 GitLab 13 ci 构建过程中排除 master 分支?

tags - 如何在 GitLab 中接受合并请求后自动创建标签?