StringBuilder_Sun

导航

Maven学习3(中央仓库)

Maven项目在运行的时候,会首先找本地仓库是否有需要的jar,如果没有则去调用远程仓库。

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

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

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

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

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

maven 仓库 示意图

配置远程仓库(可以在项目的pom.xml中配置  也可以在setting.xml中配置)

当有些构件在中央仓库不存在,必须从其他仓库获取的时候,我们需要在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的坐标,有以下几个网站可以使用

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

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

posted on 2017-04-28 16:44  StringBuilder_Sun  阅读(325)  评论(0编辑  收藏  举报