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元素的值为想要的仓库地址

 

 

 

[html] 
1. <settings>  
2. <localRepository>D:\maven_new_repository</localRepository>  
3. </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

1. <repositories>  
2. <repository>  
3. <id>central</id>  
4. <name>Central Repository</name>  
5. <url>http://repo.maven.apache.org/maven2</url>  
6. <layout>default</layout>  
7. <snapshots>  
8. <enabled>false</enabled>  
9. </snapshots>  
10. </repository>  
11. </repositories>

2.2私服

私服是一种特殊的远程仓库 是假设在局域网上的 当maven需要下载时会从私服请求 如果私服中不存在资源则从外部远程仓库下载 并缓存在私服上 我们可能把一些容易被墙的资源上传到私服上

三、远程仓库配置

配置如下

1. <repositories>  
2. <repository>  
3. <id>jboss</id>  
4. <name>JBoss Repository</name>  
5. <url>http://repository.jboss.com/maven2/</url>  
6. <releases>  
7. <updatePolicy>daily</updatePolicy> <!-- 表示更新频率 never always interval daily daily为默认值  -->  
8. <enabled>true</enabled>  
9. <checksumPolicy>warn</checksumPolicy><!-- 表示maven检查和查验文件的策略 -->  
10. </releases>  
11. <snapshots>  
12. <enabled>false</enabled>  
13. </snapshots>  
14. <layout>default</layout>  
15. </repository>  
16. </repositories>

 

出于安全考虑 我们要对主仓库进行认证

1. <servers>  
2. <server>  
3. <id>same with repository id in pom</id>  
4. <username>username</username>  
5. <password>pwd</password>  
6. </server>  
7. </servers>

将生成的项目部署到远程仓库

<distributionManagement>
repository>  
    <id></id>
    <name></name>
    <url></url>
repository>  <!--  发布版本构件的仓库
snapshotRepository>  
    <id></id>
    <name></name>
    <url></url>
</snapshotRepository> <!--  快照版本的仓库 -->
</distributionManagement>

 

运行:mvn clean deploy