MavenAuthenticate@0 - Maven 身份验证 v0 任务

使用此任务为 Azure Artifacts 源和外部 Maven 存储库提供凭据。

语法

# Maven Authenticate v0
# Provides credentials for Azure Artifacts feeds and external maven repositories.
- task: MavenAuthenticate@0
  inputs:
    #artifactsFeeds: # string. Feeds. 
    #mavenServiceConnections: # string. Credentials for repositories outside this organization/collection.

输入

artifactsFeeds - 饲料
string.

指定要使用 Maven 进行身份验证的 Azure Artifacts 源名称的逗号分隔列表。 如果只需要对外部 Maven 存储库进行身份验证,请将此字段留空。


mavenServiceConnections - 此组织/集合外部存储库的凭据
string.

指定要通过 Maven 进行身份验证的外部组织的 Maven 服务连接 名称的逗号分隔列表。 如果只需要对 Azure 项目源进行身份验证,请将此字段留空。


任务控件选项

除任务输入外,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

指定当前用户文件中 Azure Artifacts 源和外部 Maven 存储库的 settings.xml 凭据。

settings.xml包含经过身份验证的存储库的文件位于何处?

Maven 身份验证任务在当前用户的主目录中搜索 settings.xml 文件。 对于 Linux 和 Mac,路径为 $HOME/.m2/settings.xml。 对于 Windows,路径为 %USERPROFILE%\.m2\settings.xmlsettings.xml如果文件不存在,则会在该路径上创建一个新文件。

我们使用 mvn -s 开关来指定我们自己的 settings.xml 文件。 如何在那里对 Azure Artifacts 源进行身份验证?

Maven 身份验证任务无权访问使用-s开关指定的自定义settings.xml文件。 若要将 Azure Artifacts 身份验证添加到自定义 settings.xml,请在 settings.xml 文件中添加服务器元素:

<server>
  <id>feedName</id> <!-- Set this to the id of the <repository> element inside your pom.xml file. -->
  <username>AzureDevOps</username>
  <password>${env.SYSTEM_ACCESSTOKEN}</password>
</server>

可以使用这些 说明在管道中设置访问令牌变量。

我的管道需要访问其他项目中的源

如果管道在与托管源的项目不同的项目中运行,则必须设置另一个项目以授予对生成服务的读/写访问权限。 有关更多详细信息 ,请参阅 Azure Pipelines 中的包权限

示例

对组织内的 Maven 源进行身份验证

在此示例中,我们对组织中的两个 Azure Artifacts 源进行身份验证。

任务定义

- task: MavenAuthenticate@0
  displayName: 'Maven Authenticate'
  inputs:
    artifactsFeeds: MyFeedInOrg1,MyFeedInOrg2

MavenAuthenticate 任务更新 settings.xml 代理用户位于 {user.home}/.m2/settings.xml 的 .m2 目录中存在的文件,以在 <servers> 元素中添加两个条目。

settings.xml

<servers>
  <server>
    <id>MyFeedInOrg1</id>
    <username>AzureDevOps</username>
    <password>****</password>
  </server>
  <server>
    <id>MyFeedInOrg2</id>
    <username>AzureDevOps</username>
    <password>****</password>
  </server>
</servers>

若要正确验证任务,请将项目中的 pom.xml 存储库设置为与 Maven 任务中指定的名称相同 <id>

pom.xml

项目范围的源

 <repository>
   <id>MyFeedInOrg1</id>
   <url>https://pkgs.dev.azure.com/OrganizationName/ProjectName/_packaging/MyProjectScopedFeed1/Maven/v1</url>
   <releases>
     <enabled>true</enabled>
   </releases>
   <snapshots>
     <enabled>true</enabled>
   </snapshots>
 </repository>

组织范围的源

 <repository>
   <id>MyFeedInOrg1</id>
   <url>https://pkgs.dev.azure.com/OrganizationName/_packaging/MyOrgScopedFeed1/Maven/v1</url>
   <releases>
     <enabled>true</enabled>
   </releases>
   <snapshots>
     <enabled>true</enabled>
   </snapshots>
 </repository>

项目源 URL 可能包含项目,也可能不包含该项目。 项目范围源的 URL 必须包含项目,组织范围的源的 URL 不得包含该项目。 详细了解 项目范围的源

对组织外部的 Maven 源进行身份验证

在此示例中,我们对两个外部 Maven 存储库进行身份验证。

任务定义

- task: MavenAuthenticate@0
  displayName: 'Maven Authenticate'
  inputs:
    MavenServiceConnections: central,MavenOrg

MavenAuthenticate 任务更新 settings.xml 代理用户位于 的 .m2 目录中 {user.home}/.m2/settings.xml 存在的文件,以在 <servers> 元素中添加两个条目。

settings.xml

<servers>
  <server>
    <id>central</id>
    <username>centralUsername</username>
    <password>****</password>
  </server>
  <server>
    <id>MavenOrg</id>
    <username>mavenOrgUsername</username>
    <password>****</password>
  </server>
</servers>

若要正确验证任务,请将项目中的 pom.xml 存储库设置为与 Maven 任务中指定的名称相同 <id>

pom.xml

<repository>
  <id>central</id>
  <url>https://repo1.maven.org/maven2/</url>
  <releases>
    <enabled>true</enabled>
  </releases>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>

要求

要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.144.0 或更高版本
任务类别 程序包
要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.120.0 或更高版本
任务类别 程序包