首页 > 代码库 > 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学习笔记之——仓库(中)