maven项目远程仓库配置

场景
        用maven管理项目时,需要通过pom引入外部jar包,所谓的外部我们统称远程仓库(包括maven私服),部分项目需要搭建公司内部的maven私服,此时引入jar包的方式会有所变化,配置也有不同。

前提
        已经搭建好了maven私服(版本2.11),并以maven私服的默认仓库为例。

详解
        maven私服的仓库类型

  1. hosted:表示该仓库是当前私服的仓库
  2. Proxy:表示该仓库只是一个代理,是把其他地方的仓库代理到当前的私服,当项目向当前仓库请求jar时,该仓库会从被代理的仓库中下载对应的jar,然后存储到当前仓库,并回送给项目。
  3. virtual
  4. group:表示一个仓库组,假设一个项目需要用到私服上的多个仓库,如果没有group,那么就得配置三个仓库。group则可以让其他仓库加入到自己,一个group中可以引入多个仓库,那么项目中只需要配置这个group仓库即可。

        maven私服的jar类型(repository policy)
                项目开发时,提交的代码并不一定是正确的,因此maven提供了两种格式的jar包,来区分稳定版和开发板。一个仓库只能指定一种jar包类型,表示该仓库中的包要么全是开发版,要么全是稳定版。

  1.         Release:表示当前jar包是稳定版
  2.         Snapshot:表示该jar包还处于开发和测试阶段,不稳定。

maven配置文件加载优先级
        pom.xml  > /home_dir/.m2/settings.xml > /maven_dir/conf/settings.xml

仓库配置
       假设当前项目需要用到仓库A(http://192.168.198.144:8081/nexus/content/groups/public/),此时可根据maven配置的加载优先级将仓库配置到合适的位置。根据需求选择下边任意一种即可。

pom.xml:添加如下配置到pom的第一层(xml),只作用于当前项目
特别注意:仓库只用请求地址表示。其中id、name均是自定义

    <repositories>
        <!-- 可添加多个 -->
        <repository>
            <!-- 自定义 -->
            <id>id</id>
            <!-- 自定义 -->
            <name>name</name>
            <!-- 仓库地址 -->
            <url>http://192.168.198.144:8081/nexus/content/groups/public/</url>
            <!-- 是否下载该仓库的release类型包,true下载,false不下载 -->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!-- 是否下载该仓库的snapshots类型包,true下载,false不下载 -->
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

settings.xml:如果要 把仓库的配置应用到全局,则需要再settings文件中添加配置。
        添加profiles后,mirrors可以省略

<profiles>
        <profile>
            <!-- 自定义 -->
            <id>besttop_nexus</id>
            <!-- 目前不懂,后期补充 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <!--all requests to nexus via the mirror -->
            <repositories>
                <!-- 可添加多个 -->
                <repository>
                    <!-- 自定义 -->
                    <id>id</id>
                    <!-- 自定义 -->
                    <name>name</name>
                    <!-- 仓库地址 -->
                    <url>http://192.168.198.144:8081/nexus/content/groups/public/</url>
                    <!-- 是否下载该仓库的release类型包,true下载,false不下载 -->
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <!-- 是否下载该仓库的snapshots类型包,true下载,false不下载 -->
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>


        
        

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值