首页 > 代码库 > Maven学习笔记之——仓库(中)

Maven学习笔记之——仓库(中)

Maven学习笔记之——仓库(中)


1、    远程仓库的配置


        当出现默认的中央仓库无法满足我们的需求或者连接不上的时候、我们可以通过POM文件来指定远程仓库、


<repositories>
       <repository>
            <id>jboss-maven2-release-repository</id>
           <name>JBoss Repository</name>
           <url>http://repository.jboss.org/maven2/</url>
           <layout>default</layout>
           <!--<snapshots>-->
               <!--<enabled>false</enabled>-->
           <!--</snapshots>-->
           <snapshots>
               <enabled>true</enabled>
               <checksumPolicy>ignore</checksumPolicy>
               <updatePolicy>daily</updatePolicy>
           </snapshots>
            <releases>
               <enabled>true</enabled>
           </releases>
       </repository>
</repositories>

        Id:此仓库的唯一标识、POM中每一个仓库都应该有一个唯一不重复的标识、可以用于后面的关于仓库的配置。

        Name:为自己配置的仓库命名。

        url:仓库的URL访问地址、通过浏览器可以直接访问。

        Layout:仓库的布局、前面有提到过。

        Snapshot:快照版本的设置

        Enabled:是否开启、false不开启、true开启:开启之后还可以设置两个属性

        checksumPolicy指定Maven检查检验和文件的策略——当构件被部署到Maven仓库中的时候、会同时部署对应的校验和文件、在下载构件的时候、Maven会验证校验和文件、如果校验失败、当checksumPolicy为warn的时候、Maven会在执行构件时输出警告信息、fail——构建失败、ignore——完全忽略校验和错误。

        updatePolicy:指定Maven从远程仓库检查更新的频率、默认值daily、其他值、never、always(每次构建都检测)、interval:X——每隔X分钟检测一次更新。


2、    远程仓库的认证


        大部分仓库都不需要认真就可以访问、出于安全考虑、我们有时候需要提供认证信息才能访问远程仓库、例如私服、一般只允许指定Maven项目所属人员才能访问、此时管理员可以为此仓库设置一组用户名和密码、然后将用户名密码提供给项目组成员、项目组成员只需要在自己访问仓库时提供用户名、密码就可以拥有访问权限了。

        仓库信息可以配置在POM文件中、但是认证信息出于安全考虑必须要配置在settings.xml文件中、因为POM文件会随着代码提交到代码库中、而settings.xml文件只会保存在本地机器上。前面提到过配置仓库的时候要为其指定一个唯一的id、这里就是通过id将仓库与其认证信息绑定在一起的。比如我们自己搭建了一nexus私服id为nexus、设定访问信息为:用户名——nexusUserName密码为——nexusPassword编辑~/.m2/settings.xml文件(自己的Maven配置文件):

<servers>
    <server>
      <id>nexus</id>
      <username> nexusUserName</username>
     <password>nexusPassword</password>
    </server>
 </servers>

3、    部署至远程仓库


        私服的一大作用就是部署第三方构件、包括不能发布在公共仓库的和自己组织内部开发的组件。

        使用Maven不但可以对项目进行编译、测试、打包、还能将项目生成的构件部署到仓库中、具体步骤:

        编辑pom.xml、配置如下:

    <distributionManagement>
        <repository>
            <id>proj-release</id>
            <name>Project releaserepository</name>
            <url>http://192.168.1.8/content/repositories/proj-releases</url>
        </repository>

        <snapshotRepository>
            <id>proj-snapshot</id>
            <name>Project snapshotrepositories</name>
            <url>http://192.168.1.8/content/repositories/proj-snapshot</url>
        </snapshotRepository>
    </distributionManagement>

        向远程仓库中部署构件时、往往需要验证、配置方法与前面访问远程仓库需要验证的方式相同、都是通过仓库id在settings.xml中的<servers><server>..下配置认证信息。

Maven学习笔记之——仓库(中)