Azure DevOps - Maven 管道发布工件
Azure DevOps - Maven Pipeline publish artifacts
我有一个 scala 项目,它在本地打包(使用 maven)非常好,而且 azure devops 上的构建管道工作正常。现在我想以某种方式检索目标文件夹中生成的 .jar 文件。因此,我想发布这些工件。但是无法找到 .jar 文件。
我有下面的azure-pipelines.yaml,其中copies/publishes整个文件夹到targetFolder,但是没有target文件夹,只复制了source code文件夹。现在我的问题是,如何 publish/access 发布工件?
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'
每个作业都是一台单独的机器。因此,如果您在一个作业上编译和生成文件,则它们在下一个作业中不可用,除非您将这些文件发布为工件并将它们下载到另一个工件上。所以如果你想让这个工作,请将它们(从 PublishArtifacts 工作的步骤)移动到你的第一份工作。
我有一个 scala 项目,它在本地打包(使用 maven)非常好,而且 azure devops 上的构建管道工作正常。现在我想以某种方式检索目标文件夹中生成的 .jar 文件。因此,我想发布这些工件。但是无法找到 .jar 文件。 我有下面的azure-pipelines.yaml,其中copies/publishes整个文件夹到targetFolder,但是没有target文件夹,只复制了source code文件夹。现在我的问题是,如何 publish/access 发布工件?
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'
每个作业都是一台单独的机器。因此,如果您在一个作业上编译和生成文件,则它们在下一个作业中不可用,除非您将这些文件发布为工件并将它们下载到另一个工件上。所以如果你想让这个工作,请将它们(从 PublishArtifacts 工作的步骤)移动到你的第一份工作。