从Maven私服获取依赖

来源:互联网 发布:数据库彩票遗漏表设计 编辑:程序博客网 时间:2024/05/18 07:36

通过Internet直接从Maven公用仓库获取依赖包是默认配置。不过对于中国软件公司来讲,访问这些公用仓库通常较慢,对于一些管理严格的不能直接上网的软件公司来讲,这更加是不可能的。Maven项目可以配置成仅从Maven私服上获取依赖。

上一篇已经讲述了如何安装Nexus为Maven私服。下面就假定使用S1服务器上的Nexus服务。可以参考官方文档:

http://www.sonatype.com/books/nexus-book/reference/config-sect-intro.html

在开发机器上有Maven项目,首先编辑~/.m2/settings.xml.

[html] view plaincopyprint?
  1. <settings>  
  2.   <mirrors>  
  3.     <mirror>  
  4.       <!--This sends everything else to /public -->  
  5.       <id>nexus</id>  
  6.       <mirrorOf>*</mirrorOf>  
  7.       <url>http://S1:8081/nexus/content/groups/public</url>  
  8.     </mirror>  
  9.   </mirrors>  
  10.   <profiles>  
  11.     <profile>  
  12.       <id>nexus</id>  
  13.       <!--Enable snapshots for the built in central repo to direct -->  
  14.       <!--all requests to nexus via the mirror -->  
  15.       <repositories>  
  16.         <repository>  
  17.           <id>central</id>  
  18.           <url>http://central</url>  
  19.           <releases><enabled>true</enabled></releases>  
  20.           <snapshots><enabled>true</enabled></snapshots>  
  21.         </repository>  
  22.       </repositories>  
  23.       <pluginRepositories>  
  24.         <pluginRepository>  
  25.           <id>central</id>  
  26.           <url>http://central</url>  
  27.           <releases><enabled>true</enabled></releases>  
  28.           <snapshots><enabled>true</enabled></snapshots>  
  29.         </pluginRepository>  
  30.       </pluginRepositories>  
  31.     </profile>  
  32.   </profiles>  
  33.   <activeProfiles>  
  34.     <!--make the profile active all the time -->  
  35.     <activeProfile>nexus</activeProfile>  
  36.   </activeProfiles>  
  37. </settings>  

只需要把S1改成自己的Nexus服务器地址就可以了。如果你的Maven项目的pom.xml中没有自定义的repository,那么就可以使用了。比如执行mvn clean compile命令,就可从S1上下载pom.xml和jar包。


注意,有时候nexus上已经部署了最新的snapshot,但是mvn clean compile就是不取最新版本,这时候需要用-U 参数强制检查。

mvn clean compile -U

如果还不行,则删除本地缓存的目录,在jenkins项目中可以在build之前执行一行命令,比如:

[plain] view plaincopyprint?
  1. rm -rf /usr/share/tomcat7/.m2/repository/com/esri/carrier/nginx-factory/

备注:常用私服地址:

http://maven.oschina.net/content/groups/public/

http://mirrors.ibiblio.org/maven2/

http://www.ibiblio.net/pub/packages/maven2/

0 0
原创粉丝点击