使用此任务提供 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文件位于何处?
- 我们使用 mvn -s开关来指定自己的settings.xml文件。 如何对 Azure Artifacts 源进行身份验证?
- 我的管道需要访问其他项目中的源
包含经过身份验证的存储库的 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 身份验证任务无权访问使用 settings.xml 开关指定的自定义 -s 文件。 若要将 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>