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 Artifacts 源的身份验证,请将此字段留空。


任务控制选项

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

输出变量

没有。

注解

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

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

Maven 身份验证任务在当前用户的主目录中搜索 settings.xml 文件。 对于 Linux 和 Mac,路径 $HOME/.m2/settings.xml。 对于 Windows,路径为 %USERPROFILE%\.m2\settings.xml。 如果 settings.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 任务更新代理用户的 .m2 目录中存在的 settings.xml 文件,该文件位于 {user.home}/.m2/settings.xml,以在 <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 任务更新代理用户的 .m2 目录中存在的 settings.xml 文件,该文件位于 {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,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 2.144.0 或更高版本
任务类别 封装件
要求 说明
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 2.120.0 或更高版本
任务类别 封装件