如何在Azure Pipelines中发布含EAR文件的完整target文件夹
问题分析
你当前的PublishBuildArtifacts@1任务发布的是$(build.artifactstagingdirectory)目录,但Maven构建生成的EAR文件和target文件夹内容并未被同步到这个目录,所以导致仅发布了空目录或部分无关内容。
解决方案
以下两种方法都可以实现完整发布target文件夹的需求:
方法一:先复制target内容到工件暂存目录再发布
添加CopyFiles@2任务,将target文件夹的所有内容复制到$(build.artifactstagingdirectory),之后再执行发布操作:
# 复制target文件夹所有内容到构建工件暂存目录 - task: CopyFiles@2 displayName: 'Copy target folder to artifact staging directory' inputs: SourceFolder: '$(System.DefaultWorkingDirectory)/target' Contents: '**/*' TargetFolder: '$(build.artifactstagingdirectory)' # 发布工件 - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' inputs: PathtoPublish: '$(build.artifactstagingdirectory)' condition: succeededOrFailed()
方法二:直接发布target文件夹
修改PublishBuildArtifacts@1任务的PathtoPublish参数,直接指向Maven构建产物所在的target文件夹,省去复制步骤:
- task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/target' condition: succeededOrFailed()
验证步骤(可选)
如果不确定target文件夹路径或内容是否正确,可以在流水线中添加任务打印目录内容,确认EAR文件存在:
- task: PowerShell@2 displayName: 'Verify target folder contents' inputs: targetType: 'inline' script: | Get-ChildItem -Path $(System.DefaultWorkingDirectory)/target -Recurse
内容的提问来源于stack exchange,提问作者INAR
相关产品推荐
相关产品推荐

