我有一个 scala 项目,它在本地打包(使用 Maven)非常好,并且 azure devops 上的构建管道也工作得很好。现在我想以某种方式检索目标文件夹中生成的 .jar 文件。因此我想发布这些文物。但找不到 .jar 文件。 我有以下 azure-pipelines.yaml,它将整个文件夹复制/发布到 targetFolder,但没有目标文件夹,仅复制源代码文件夹。现在我的问题是,如何发布/访问已发布的 Artifact ?
trigger:
- azure_devops_pipeline
pool:
vmImage: ubuntu-latest
stages:
- stage: Package
jobs:
- job: Package
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
mavenAuthenticateFeed: true
effectivePomSkip: true
goals: 'package'
options: '-Dmaven.test.skip=true -Pscala-2.12 -Pfat-jar'
#sonarQubeRunAnalysis: false
- stage: PublishArtifacts
jobs:
- job: PublishArtifacts
steps:
- task: CopyFiles@2
inputs:
#SourceFolder: '/home/vsts/work/1/s/target/'
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)'
CleanTargetFolder: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
最佳答案
每个作业都是一台单独的机器。因此,如果您在一项作业中编译并生成文件,则它们在下一项作业中将不可用,除非您将这些文件作为 Artifact 发布并将它们下载到另一 Artifact 上。因此,如果您想让此工作正常运行,请将它们(从 PublishArtifacts 作业的步骤)移至您的第一份作业。
关于Azure DevOps - Maven Pipeline 发布 Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68405820/