Maven settings.xml 文件的配置

举报
林欣 发表于 2025/02/20 15:58:19 2025/02/20
【摘要】 在 Maven 的 settings.xml 文件中,你可以配置多个镜像和仓库来实现你的需求。以下是一个示例配置,展示了如何从局域网内部服务器开始查找依赖,如果没找到再从阿里云仓库查找,如果仍然没找到,则回退到 Maven 官方仓库。<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="htt...

在 Maven 的 settings.xml 文件中,你可以配置多个镜像和仓库来实现你的需求。以下是一个示例配置,展示了如何从局域网内部服务器开始查找依赖,如果没找到再从阿里云仓库查找,如果仍然没找到,则回退到 Maven 官方仓库。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
    <!-- 配置本地仓库位置(可选) -->
    <localRepository>/path/to/local/repo</localRepository>

    <mirrors>
        <!-- 配置局域网内部仓库 -->
        <mirror>
            <id>internal-repo</id>
            <mirrorOf>*</mirrorOf>
            <url>http://your-internal-repo-url/repository/maven-public/</url>
            <blocked>false</blocked>
        </mirror>

        <!-- 配置阿里云仓库 -->
        <mirror>
            <id>aliyun-repo</id>
            <mirrorOf>external:*</mirrorOf>
            <url>https://maven.aliyun.com/repository/public</url>
            <blocked>false</blocked>
        </mirror>

        <!-- 注意:官方仓库不需要配置为镜像,因为它是默认行为 -->
    </mirrors>

    <profiles>
        <!-- 你可以在这里配置一些 profiles,不过对于这个问题来说不是必须的 -->
    </profiles>

    <activeProfiles>
        <!-- 同样,对于这个问题来说,不需要激活特定的 profile -->
    </activeProfiles>

    <!-- 关键部分:配置仓库顺序 -->
    <servers>
        <!-- 配置认证信息(如果需要的话) -->
        <!-- 局域网内部仓库认证信息 -->
        <server>
            <id>internal-repo</id>
            <username>your-internal-repo-username</username>
            <password>your-internal-repo-password</password>
        </server>

        <!-- 阿里云仓库认证信息(如果需要的话) -->
        <!-- 
        <server>
            <id>aliyun-repo</id>
            <username>your-aliyun-repo-username</username>
            <password>your-aliyun-repo-password</password>
        </server>
        -->
    </servers>

    <!-- 注意:这里没有显式配置官方仓库,因为 Maven 默认会从官方仓库下载 -->
</settings>

解释:

  1. 镜像配置 (<mirrors>)

    • internal-repo:首先尝试从局域网内部仓库下载依赖。
    • aliyun-repo:如果局域网内部仓库找不到依赖,Maven 会尝试从阿里云仓库下载。这里使用了 mirrorOfexternal:* 匹配模式,意味着它只替代官方仓库和外部仓库。
  2. 服务器认证 (<servers>)

    • 配置了局域网内部仓库的认证信息。如果阿里云仓库需要认证,也可以在这里添加相应的配置。
  3. 默认行为

    • Maven 默认会从 Maven 中央仓库(官方仓库)下载依赖。由于我们配置了 mirrorOf=* 的镜像,它会优先查找这些镜像。如果镜像中都没有找到,Maven 会回退到官方仓库。

注意事项:

  • mirrorOf 属性用于指定哪些仓库(或所有仓库)被镜像替代。* 表示所有仓库,external:* 表示除了本地仓库以外的所有仓库。
  • 确保你配置的 URL 和认证信息是有效的。
  • 这个配置假设你的局域网内部仓库和阿里云仓库已经正确设置,并且可以访问。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。