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>可以进行如下配置

仓库搜索服务

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

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

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

优质内容筛选与推荐>>
1、Linux服务器上监控网络带宽的18个常用命令(转)
2、KalonDaemon - 守护进程PHP版
3、如何从微博中挖出你感兴趣的“潜水者”
4、网络基础知识讲座四
5、SQL Server 2000 故障转移群集


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn