转载自:http://blog.****.net/wanghantong/article/details/36427433
Maven 仓库的分类:
maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 *仓库 2.2 私服 2.3 其它公共库
maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置
如何更改maven默认的本地仓库的位置:这里要引入一个新的元素:localRepository,它是存在于maven的settings.xml文件中
1.1 更改配置用户范围的本地仓库:先在/.m2/目录下创建settings.xml文件,然后在~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址
- <settings>
- <localRepository>D:\maven_new_repository</localRepository>
- </settings>
这时候,maven的本地仓库地址就变成了 D:\maven_new_repository ,注:此时配置的maven的本地仓库是属于用户范围的。
1.2 更改配置全局范围的本地仓库:在M2_HOME/conf/settings.xml中更改配置,更改配置的方法同上
注:此时更改后,所有的用户都会受到影响,而且如果maven进行升级,那么所有的配置都会被清除,所以要提前复制和备份M2_HOME/conf/settings.xml文件
故:一般情况下不推荐配置全局的settings.xml
2、远程仓库
所有的maven项目都会超级pom 包含了如下配置的pom就成为超级pom
- <repositories>
- <repository>
- <id>central</id>
- <name>Central Repository</name>
- <url>http://repo.maven.apache.org/maven2</url>
- <layout>default</layout>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
2.2私服
私服是一种特殊的远程仓库 是假设在局域网上的 当maven需要下载时会从私服请求 如果私服中不存在资源则从外部远程仓库下载 并缓存在私服上 我们可能把一些容易被墙的资源上传到私服上
三、远程仓库配置
配置如下
- <repositories>
- <repository>
- <id>jboss</id>
- <name>JBoss Repository</name>
- <url>http://repository.jboss.com/maven2/</url>
- <releases>
- <updatePolicy>daily</updatePolicy> <!-- 表示更新频率 never always interval daily daily为默认值 -->
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy><!-- 表示maven检查和查验文件的策略 -->
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <layout>default</layout>
- </repository>
- </repositories>
出于安全考虑 我们要对主仓库进行认证
- <servers>
- <server>
- <id>same with repository id in pom</id>
- <username>username</username>
- <password>pwd</password>
- </server>
- </servers>
将生成的项目部署到远程仓库
<distributionManagement>
<repository>
<id></id>
<name></name>
<url></url>
</repository> <!-- 发布版本构件的仓库 -->
<snapshotRepository>
<id></id>
<name></name>
<url></url>
</snapshotRepository> <!-- 快照版本的仓库 -->
</distributionManagement>
运行:mvn clean deploy