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
包含经过身份验证的存储库的文件位于何处? - 我们使用
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 身份验证任务无权访问使用-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>