Maven本地仓库及远程仓库

Posted chrischris

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven本地仓库及远程仓库相关的知识,希望对你有一定的参考价值。

转载自:http://blog.csdn.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元素的值为想要的仓库地址

 

 

 

[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

 

 

以上是关于Maven本地仓库及远程仓库的主要内容,如果未能解决你的问题,请参考以下文章

maven 安装alipay-sdk包到本地及远程仓库

Maven 将远程仓库jar包安装至本地仓库

Maven 将远程仓库jar包安装至本地仓库

Maven 将远程仓库jar包安装至本地仓库

Maven 将远程仓库jar包安装至本地仓库

maven是怎么判断包在本地仓库和远程仓库哪个是新的