使用 Azure Pipelines 发布 Maven 工件
使用 Azure Pipelines,可以将 Maven 包发布到 Azure Artifacts 源、公共注册表,或作为管道工件发布。
设置项目
将以下代码片段添加到 pom.xml 文件中的
repositories
和distributionManagement
部分。 将占位符替换为组织名称、项目名称和源名称。<repository> <id>MavenDemo</id> <url>https://pkgs.dev.azure.com/ORGANIZATION-NAME/PROJECT-NAME/_packaging/FEED-NAME/maven/v1</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository>
按如下所示配置 settings.xml 文件。 将占位符替换为组织名称、项目名称和个人访问令牌。
<server> <id>PROJECT-NAME</id> <username>ORGANIZATION-NAME</username> <password>PERSONAL-ACCESS-TOKEN</password> </server>
创建具有“打包读写”范围的个人访问令牌,并将其粘贴到 settings.xml 文件中的
password
标记中。
生成代码
在此示例中,我们将使用 Maven 任务通过 Azure Pipelines 生成项目。
- task: Maven@3
inputs:
mavenPomFile: 'my-app/pom.xml' // Path to your pom file
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'package'
将包发布到管道
下面的示例说明了如何将工件发布到管道中的 rop。 使用“复制文件”任务将包复制到目标文件夹,然后使用 “发布生成工件”将生成工件发布到 Azure Pipelines。
- task: CopyFiles@2
inputs:
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
将包发布到你的源
要将包发布到 Azure Artifacts 源,可使用 Maven 任务将工件部署到源。
- task: Maven@3
inputs:
mavenPomFile: 'my-app/pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
mavenAuthenticateFeed: true
publishJUnitResults: false
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'deploy'
问答
问:如何使用 MavenAuthenticate 进行身份验证?
答:可以使用 MavenAuthenticate 任务对组织内外的 Maven 源进行身份验证。 有关更多详细信息,请参阅以下示例: