Maven实战——远程仓库的配置

来源:互联网 发布:键盘操作记录软件 编辑:程序博客网 时间:2024/05/29 11:24

远程仓库的配置
在很多情况下,默认的中央仓库无法满足项目的需求,可能项目需要的构件存在于另外一个远程仓库中
如JBoss仓库:

<project>...    <repositories>        <repository>            <id>jboss</id>            <name>JBoss Repository</name>            <url>http://repository.jboss.com/maven2/</url>            <releases>                <enabled>true</enabled>            </releases>            <snapshots>                <enabled>false</enabled>            </snapshots>            <layout>default</layout>        </repository>    </repositories>    ...</project>

在repositories元素下,可以使用子元素repository元素声明一个或者多个远程仓库。
对于releases和snapshots来说,除了enabled还包括另外两个子元素updatePolicy和ChecksumPolicy:

<snapshots>    <enabled>true</enabled>    <updatePolicy>daily</updatePolicy>    <checksumPolicy>ignore</checksumPolicy></snapshots>

updatePolicy用来配置Maven从远程仓库检查跟新的频率,默认是daily,never从不检查,interval:X——每隔X分钟检查一次更新。
checksumPolicy用来配置Maven检查校验和文件的策略。默认未warn:构建时输出警告信息,fail:遇到错误就构建失败,ignore:使Maven完全忽略掉校验和错误。
远程仓库的认证
配置认证信息和仓库信息不同,配置仓库信息直接在pom文件中进行配置,但是配置认证信息需在settings.xml中配置认证信息更为安全。假设需要配置一个id为my-proj的仓库认证信息,如下:

<settings>...    <servers>        <server>            <id>my-proj</id>            <username>repo-user</username>            <password>repo-pwd</password>        </server>    </servers>...</settings>

部署至远程仓库
Maven除了对项目进行编译、测试、打包之外,还能项目生成构建部署到仓库中,需要编辑pom.xml如下:

<project>    ...    <distributionManagement>        <repository>            <id>proj-releases</id>            <name>Proj Release Repository</name>            <url>http://192.168.1.100/content/repositories/proj-releases</url>        </repository>        <snapshotRepository>            <id>proj-snapshots</id>            <name>Proj Snapshot Repository</name>            <url>http://192.168.1.100/content/repositories/proj-releases</url>        </snapshotRepository>    </distributionManagement>    ...</project>

repository和snapshotRepository子元素前者表示发布版本构件的仓库,后者表示快照版本的仓库。
往远程仓库部署构件的时候往往需要认证,简而言之,就是需要在settings.xml中创建一个Server元素,其id与仓库的id匹配,并且配置正确的认证信息。不论从远程仓库下载构件还是部署构件到远程仓库,当需要认证的时候,配置的方式是一样的。
配置正确之后,运行mvn clean deploy,Maven就会将项目构建输出的构件部署到配置的远程仓库上。

1 0