Maven实战——远道仓库的配置
远程仓库的配置
在很多情况下,默认的*仓库无法满足项目的需求,可能项目需要的构件存在于另外一个远程仓库中
如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就会将项目构建输出的构件部署到配置的远程仓库上。