Amazon web services CodeBuild中的工件不能与CodeDeploy一起部署

Amazon web services CodeBuild中的工件不能与CodeDeploy一起部署,amazon-web-services,aws-code-deploy,aws-codepipeline,aws-codebuild,Amazon Web Services,Aws Code Deploy,Aws Codepipeline,Aws Codebuild,使用CodeBuild,我编译我的SpringBoot应用程序,并将生成的jar放在名为deploy/的文件夹中。在我的buildspec.yml中,最后我提供了: artifacts: files: - deploy/* 当我将其插入到CodePipeline时,这将在S3中创建一个zip文件。但问题是,此zip文件包含根文件夹,即deploy。因此,zip文件的结构是: deploy.zip - deploy/ - appspec.yml - app.

使用CodeBuild,我编译我的SpringBoot应用程序,并将生成的jar放在名为
deploy/
的文件夹中。在我的
buildspec.yml
中,最后我提供了:

artifacts:
   files:
    - deploy/*
当我将其插入到CodePipeline时,这将在S3中创建一个zip文件。但问题是,此zip文件包含根文件夹,即
deploy
。因此,zip文件的结构是:

deploy.zip
  - deploy/
     - appspec.yml
     - app.jar
     - ...
这导致CodeDeploy无法找到
appspec.yml
,因为它没有在deploy文件夹中查找。我一直在努力克服这个问题,在构建过程结束时提供一个zip文件作为工件,但是在管道中它又被压缩了


任何解决这个问题的想法都将不胜感激

您可以添加
放弃路径:是

artifacts:
  files:
    - deploy/*
  discard-paths: yes
请记住,它会丢弃所有路径,包括子目录


来源:

您可以在名为
基本目录的工件部分添加一个新标志,以指定工件包的基本路径。这将允许您截断工件中的
deploy/
路径,而不会丢失底层结构的其余部分

artifacts:
  files:
    - **/*
  base-directory: deploy

只有当文件值为字符串时,此答案才有效,例如:-“deploy/*”