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] view plain copy

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