Maven学习3(中央仓库)

Maven项目在运行的时候,会首先找本地仓库是否有须要的jar,若是没有则去调用远程仓库。服务器

解读Maven在仓库中的存储路径:网络

1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将  "."  转换成 "/" ; example: org.testng --->org/testng maven

2.基于artifactId准备路径,将artifactId链接到后面:org/testng/testng 布局

3.使用version准备路径,将version链接到后面:org/testng/testng/5.8 网站

4.将artifactId于version以分隔符连字号链接到后面:org/testng/testng/5.8/tesng-5.8 url

5.判断若是构件有classifier,就要在 第4项 后增长 分隔符连字号 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5 spa

6.检查构件的extension,若是extension存在,则加上句点分隔符和extension,而extension是由packing决定的,org/testng/testng/5.8/tesng-5.8-jdk5.jarcode

maven 仓库 示意图orm

配置远程仓库(能够在项目的pom.xml中配置  也能够在setting.xml中配置)server

当有些构件在中央仓库不存在,必须从其余仓库获取的时候,咱们须要在maven项目的pom.xml中 配置一个能够获取到该构件的远程仓库。

配置过程以下:

<!--在pom中配置远程仓库的地址-->
    <repositories>
        <repository>
            <!--仓库id ,必须惟一,不然覆盖原有的仓库-->
            <id>jboss</id>
            <!--仓库名-->
            <name>JBoss repository</name>
            <!--远程仓库地址-->
            <url>http://repository.jboss.com/maven2/</url>
            <releases>
                <!--表示容许下载使用发布版本-->
                <enabled>true</enabled>
                <!--设置从远程更新的频率,默认是daily -->
                <!--三种取值   alway 老是更新   never从不更新 interval:X   X表示每隔X分钟 -->
                <updatePolicy>daily</updatePolicy>
                <!--用来配置maven检查校验和文件的策略-->
                <!--当构建部署到本地仓库的时候 会同时部署对应的校验和文件-->
                <!--有三种取值   ignore 忽略校验  fail 校验失败 中止构建  warm 输出警告信息-->
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
            <!--使用默认的布局-->
            <layout>default</layout>
            <!--是否容许使用快照版本-->
            <snapshots>
                <enabled>false</enabled>
                <!--设置从远程更新的频率,默认是daily -->
                <!--三种取值   alway 老是更新   never从不更新 interval:X   X表示每隔X分钟 -->
                <updatePolicy>daily</updatePolicy>
                <!--用来配置maven检查校验和文件的策略-->
                <!--当构建部署到本地仓库的时候 会同时部署对应的校验和文件-->
                <!--有三种取值   ignore 忽略校验  fail 校验失败 中止构建  warm 输出警告信息-->
                <checksumPolicy>ignore</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

远程仓库的认证  (在setting.xml中配置)

远程仓库的认证不能像远程仓库的配置同样在pom.xml中进行,须要在setting.xml中配置,由于该项目极可能是你们公用的一个maven项目,而本地仓库是放在本地属于我的。

远程仓库的配置以下:

<servers>
<server>
<!--id名字必需要与pom中配置的远程仓库id同样,这样才能够对立起来-->
<id>jboss</id>
<!--用户名-->
<username>admin</username>
<!--密码-->
<password>1234@qwer</password>
</server>
<servers>

部署项目到远程仓库

咱们能够把本身的项目经过maven部署到远程仓库,供本身的同事使用

部署到远程服务器 须要在pom中进行以下配置:

<!--部署到远程仓库-->
    <distributionManagement>
        <!--发布版本构建的仓库-->
        <repository>
            <!--远程仓库的id-->
            <id>taocodeReleases</id>
            <!--构件的名字-->
            <name>account-email</name>
           <!--要部署的远程仓库地址-->
            <url>http://mvnrepo.code.taobao.org/nexus/content/repositories/releases</url>
        </repository>
        <!--快照版本构建的仓库-->
        <snapshotRepository>
            <!--远程仓库的id-->
            <id>taocodeSnapshots</id>
            <!--构件的名字-->
            <name>account-email</name>
            <!--要部署的远程仓库地址-->
            <url>http://mvnrepo.code.taobao.org/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

使用命令:mvn clean deploy

镜像

加入B仓库包含了A仓库的全部服务,那么B就是A 的镜像。

当咱们访问处在别的国家的中央仓库的时候没有与网络的限制,下载速度会很慢,因此咱们可使用在国内的中央仓库的镜像 。

镜像配置以下:

<mirrors>
        <mirror>
            <!--仓库id,若是须要验证 在setting中配置该id的用户名 密码-->
            <id>alimaven</id>
            <name>aliyun maven</name>
            <!--中央仓库的镜像-国内中央仓库的地址-->
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <!--中央仓库的id-->
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>

为了使用更简单 复杂的须要,<mirrorOf>能够进行以下配置

11111111

 

仓库搜索服务

学会如何使用maven,引入jar 包 是经过使用jar的坐标决定,如何查找jar的坐标,有如下几个网站可使用

一、https://repository.sonatype.org/   Sonaty Nexus

二、http://mvnrepository.com/     中央仓库

相关文章
相关标签/搜索