gpt4 book ai didi

java - Spring Boot 应用程序的 Azure 发布管道表示没有可发布的工件

转载 作者:行者123 更新时间:2023-12-01 19:17:33 26 4
gpt4 key购买 nike

我想使用 Azure DevOps 在 Azure 上部署我的 Spring Boot (Java) 应用程序。但是,我似乎无法让发布管道正常工作。

我已经使用以下 azure-pipelines.yml 创建了一个 Azure 构建管道:

trigger:
- master

pool:
vmImage: 'ubuntu-latest'

steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
goals: 'package'
options: '-Dmaven.test.skip=true'
mavenOptions: '-Dmaven.test.skip=true'
publishJUnitResults: false
javaHomeOption: 'JDKVersion'
mavenVersionOption: 'Default'
mavenAuthenticateFeed: false
effectivePomSkip: false
sonarQubeRunAnalysis: false

构建成功,下一步是创建发布管道。我选择了选项“将 Java 应用程序部署到 Azure 应用服务”。当我尝试添加工件时,我看到以下内容: Screenshot of Azure release pipeline

如您所见,我收到消息“没有可用的版本,或者最新版本没有可发布的工件”。请检查源管道。'。这告诉我构建管道没有创建工件或者其他一些设置配置不正确。我最初的想法是,我需要向 azure-pipelines.yml 添加一个步骤,以实际将工件放置在某处。

有谁知道解决办法是什么吗?

最佳答案

This tells me that the build pipeline did not create the artifact or that some other setting is configure incorrectly. My initial thought is that I need to add a step to azure-pipelines.yml that actually puts the artifact somewhere.

是的,您最初的想法是完全正确的。

当您使用发布管道部署应用程序/文件时,这将从工件中获取源代码。因此,我们需要将应用程序/文件发布到构建管道中的工件。构建输出位于未发布到工件的工作目录中,这就是您收到错误的原因,没有可用的版本或最新版本没有可发布的工件

要解决此问题,您只需添加 copy taskPublish build artifacts task在 Maven 任务之后复制 .jar 文件并将其发布到工件:

steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
goals: 'package'
...

- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**/*.jar'
TargetFolder: '$(build.artifactstagingdirectory)'

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'

然后,我们可以使用发布管道来部署构建工件:

enter image description here

关于java - Spring Boot 应用程序的 Azure 发布管道表示没有可发布的工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59402646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com