Maven之——仓库(中)

来源:互联网 发布:淘宝客服数据报表 编辑:程序博客网 时间:2024/05/29 14:29

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>..下配置认证信息。

1 0
原创粉丝点击