zoukankan      html  css  js  c++  java
  • 从Maven私服获取依赖

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

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

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

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

    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包。
    <profile>
          <id>nexus</id>
          <repositories>
            <repository>
              <id>central</id>
              <url>http://172.27.2.203:8081/nexus/content/groups/public/</url>
            <releases><enabled>true</enabled></releases>
              <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
            </repository>
          </repositories>
          
         <pluginRepositories>
            <pluginRepository>
              <id>central</id>
              <url>http://172.27.2.203:8081/nexus/content/groups/public/</url>
              <releases><enabled>true</enabled></releases>
               <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
            </pluginRepository>
          </pluginRepositories>
        </profile>

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

    mvn clean compile -U

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

    1. rm -rf /usr/share/tomcat7/.m2/repository/com/esri/carrier/nginx-factory/ 
  • 相关阅读:
    【译】用 Rust 实现 csv 解析-part3
    【译】用 Rust 实现 csv 解析-part2
    【译】用 Rust 实现 csv 解析-part1
    【译】Rust 中的 char 和 Go 中的 rune 有什么区别?
    【译】TCP/IP 网络编程基础系列-数值编码
    【译】我最喜欢的 Rust 函数签名
    Rust 学习之运算符重载
    java.util.ConcurrentModificationException: null 问题分析解决
    2020年
    科目三夜间灯光模拟
  • 原文地址:https://www.cnblogs.com/tbyang/p/3613962.html
Copyright © 2011-2022 走看看