Maven 项目无法从 Azure Artifacts 下载工件

Maven project is not able to download artifacts from Azure Artifacts

另一种问这个问题的方法是:

如何使用 Azure personal access token 验证 maven 项目,以便 Maven 构建可以下载 artifacts 发布于 Azure Artifacts

我有个人访问令牌,可以进行身份​​验证。但问题是帮助 Maven 项目进行身份验证的 pom.xml 是什么。

或更简单的词

如何配置 maven 项目以从 maven 中央仓库和一些私人工件发布者下载工件。在我的例子中,私有工件发布者是 Azure Artifacts。

首先在系统环境变量中设置您的 Azure 个人访问令牌。 比如环境变量名称键是 AZURE_PAT 然后在 settings.xml

中访问它

你只需要在C:\Users\<UserName>\.m2

下添加一个settings.xml

settings.xml 会像

<settings>
  <servers>
    <server>
      <id>AzureRepo</id>
      <username>AZURE_ARTIFACTS</username>
      
        <password>${env.AZURE_PAT}</password>
        
    </server>

  </servers>

</settings>

然后打开 pom.xml 并在 repositories 属性下添加以下 repository 属性。您的 azure artifactory URL 将由 Azure artifactory 提供。

    <repository>
        <id>AzureRepo</id>
        <url>Artifactory URL provided by Azure</url>
    </repository>

因此您的 pom.xml 将如下所示。顺便说一句,这个 pom.xml 有 spring 依赖关系。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.basic</groupId>
    <artifactId>basic</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>basic</name>
    <description>basic maven project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
          <id>Central Maven repository</id>
          <name>Central Maven repository https</name>
          <url>https://repo.maven.apache.org/maven2</url>
          <layout>default</layout>
        </repository>
        <repository>
            <id>AzureRepo</id>
            <url>Artifactory URL provided by Azure</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
          <id>Central Maven repository</id>
          <name>Central Maven repository https</name>
          <url>https://repo.maven.apache.org/maven2</url>
          <layout>default</layout>
        </pluginRepository>
    </pluginRepositories>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

这可以帮助您在 maven 存储库中下载 azure 工件。