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
文件位于何处? - 我们使用
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
任务更新代理用户的 .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>