美文网首页maven
maven仓库配置

maven仓库配置

作者: nextbeginning | 来源:发表于2019-12-08 21:19 被阅读0次

简介

maven仓库从存储位置上区分,可以分为本地仓库和远程仓库,项目中依赖jar包时,首先从本地仓库查找,本地仓库没有时候,就会去远程仓库下载至本地。从仓库作用上区分,可以分为release(已发行稳定版)、snapshot(快照版本)。

1.snapshot和release区别

snapshot版本一般开发环境中使用,通常开发环境下版本还不稳定,经常需要修改代码重新发布,snapshot版本发布至仓库后,会自动带一个带日期的后缀存储,客户端每次都会去下载最新的版本。而release版本用于上线后发布的版本,客户端缓存本地后,不会再去更新。
在一个包的pom文件中,把版本号带上-SNAPSHOT结尾即告诉maven仓库此包用SNAPSHOT仓库管理。

2.仓库镜像

因为远程中央仓库的访问量较大,通常来说不够稳定,我们可以设置一个远端仓库的镜像版本,例如阿里云中央仓库、腾讯云中央仓库、自己搭建的私服等。

<mirrors>
    <mirror>
        <id>mirror</id>
        <mirrorOf>*</mirrorOf>
        <name>mirror</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

mirrorOf表示对哪个仓库id做代理,表示所有仓库。如果我们建议了自己的私服仓库,在maven中配置了两个仓库id为:rdc-releases、rdc-snapshots,想要不对这两个私服仓库代理,则可以配置mirrorOf的值为:,!rdc-releases,!rdc-snapshots

3.仓库配置

如果自己搭建了私服仓库用于deploy自己的jar包,或者用了第三方的仓库。需要配置下才可以用maven deploy命令上传自己的jar包。
在maven的配置文件中,增加repository

<repositories>
    <repository>
        <id>rdc-releases</id>
        <url>https://repo.rdc.aliyun.com/repository/110553-release-OU57qV/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>rdc-snapshots</id>
        <url>https://repo.rdc.aliyun.com/repository/110553-snapshot-S1Aagg/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

访问仓库的用户名密码,需要在server中配置

<servers>
    <server>
        <id>rdc-releases</id>
        <username>***</username>
        <password>******</password>
    </server>
    <server>
        <id>rdc-snapshots</id>
        <username>***</username>
        <password>******</password>
    </server>
</servers>

jar包所在的pom文件中,增加distributionManagement

<distributionManagement>
    <repository>
        <id>rdc-releases</id>
        <url>https://repo.rdc.aliyun.com/repository/110553-release-OU57qV/</url>
    </repository>
    <snapshotRepository>
        <id>rdc-snapshots</id>
        <url>https://repo.rdc.aliyun.com/repository/110553-snapshot-S1Aagg/</url>
    </snapshotRepository>
</distributionManagement>

这样,在使用maven clean deploy之后,maven会根据你的jar包的版本号,如果带-SNAPSHOT结尾,则上传至rdc-snapshots仓库,否则上传至rdc-releases仓库。

4.配置多个发布仓库

通常可能开发环境和线上环境,私服仓库不是同一个,可以通过在项目的pom文件中配置多个profile的形式实现

<profiles>
    <profile>
        <id>ci</id>
        <distributionManagement>
            <repository>
                <id>rdc-releases</id>
                <url>https://repo.rdc.aliyun.com/repository/110553-release-OU57qV/</url>
            </repository>
            <snapshotRepository>
                <id>rdc-snapshots</id>
                <url>https://repo.rdc.aliyun.com/repository/110553-snapshot-S1Aagg/</url>
            </snapshotRepository>
        </distributionManagement>
    </profile>
    <profile>
        ...
    </profile>
</profiles>

之后maven打包的时候通过-P指定profile使包上传到指定仓库,例如maven clean deploy -Pci将上传包至ci配置的仓库

5.同一种类型的仓库配置多个
如果同一种类型的仓库配置了多个或者没配置,例如配置了两个release仓库,个人感觉是按照顺序去下载,找不到才会找下一个。如果都找不到,则会去默认maven中央仓库找

相关文章

  • Maven 仓库管理

    本节主要介绍如何配置 Maven 仓库,发布 jar 包到 Maven 仓库 Maven 仓库是什么? Maven...

  • 拉勾后台管理系统后端开发

    后端开发 Maven settings.xml配置文件 仓库 本地仓库 远程仓库 中央仓库 maven中央仓库 ...

  • maven配置阿里云仓库

    maven配置阿里云仓库 Maven 配置 打开 Maven 的配置文件(windows机器一般在maven安装目...

  • maven学习笔记

    1.maven环境配置2.配置maven3.maven私服 nexus3 配置4.maven使用nexus仓库5....

  • Maven | HeadFirst

    headfirst maven安装 maven配置本地仓库 关于pom.xml 远程仓库:地址 modelVers...

  • 解决idea构建springboot,pom没有提示

    1.配置好maven的路径2.配置maven的本地仓库路径 3.update maven本地仓库 注意: 有时候e...

  • Maven仓库管理

    摘要:Maven,本地仓库,远程仓库,仓库配置,仓库认证,镜像 为什么需要仓库 在Maven中任何一个依赖,插件或...

  • 修改中央仓库地址

    1 找到Maven的配置文件 2 修改Maven中央仓库地址 阿里云仓库地址 公司内部仓库地址

  • 那些年踩过的maven坑

    maven依赖 下载缓慢原因:maven中央仓库在国外, 下载慢解决: 配置国内仓库,作为中央仓库的镜像修改位置:...

  • maven仓库镜像

    阿里云仓库镜像 gradle 配置 阿里云 代理了很多公共的maven仓库 网易云仓库镜像gradle配置

网友评论

    本文标题:maven仓库配置

    本文链接:https://www.haomeiwen.com/subject/kdhvgctx.html