• Maven--配置 Maven 从 Nexus 下载构件


    在 POM 中配置:

     1 <project>
     2     ...
     3     <repositories>
     4         <repository>
     5             <id>nexus</id>
     6             <name>Nexus</name>
     7             <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
     8             <releases>
     9                 <enabled>true</enabled>
    10             </releases>
    11             <snapshots>
    12                 <enabled>true</enabled>
    13             </snapshots>
    14         </repository>
    15     </repositories>
    16     <pluginRepositories>
    17         <pluginRepository>
    18             <id>nexus</id>
    19             <name>Nexus</name>
    20             <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
    21             <releases>
    22                 <enabled>true</enabled>
    23             </releases>
    24             <snapshots>
    25                 <enabled>true</enabled>
    26             </snapshots>
    27         </pluginRepository>
    28     </pluginRepositories>
    29     ...
    30 </project>

    在 settings.xml 中配置:

    settings.xml 并不支持直接配置 repositories 和 pluginRepositories,Maven 提供了 profile 机制,能让为用户将仓库配置放到 settings.xml 中的 profile 中。

     1 <settings>
     2     ...
     3     <profiles>
     4         <profile>    
     5         <id>nexus</id>
     6         <repositories>
     7             <repository>
     8                 <id>nexus</id>
     9                 <name>Nexus</name>
    10                 <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
    11                 <releases>
    12                      <enabled>true</enabled>     
    13                 </releases>
    14                 <snapshots>
    15                      <enabled>true</enabled>
    16                 </snapshots>
    17             </repository>
    18         </repositories>
    19         <pluginRepositories>
    20             <pluginRepository>
    21                 <id>nexus</id>
    22                 <name>Nexus</name>
    23                 <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
    24                 <releases>
    25                      <enabled>true</enabled>     
    26                 </releases>
    27                 <snapshots>
    28                      <enabled>true</enabled>
    29                 </snapshots>
    30             </pluginRepository>
    31         </pluginRepositories>
    32     </profile>
    33     </profiles>
    34 
    35     <activeProfiles>
    36         <activeProfile>nexus</activeProfile>
    37     </activeProfiles>
    38     ...
    39 </settings>

    该配置中使用用一个  <id>  为 nexus 的  <profile> ,这个 profile 包含了相关的仓库配置,同时配置中又使用  <activeProfile>  将 nuxus 这个 profile 激活,这样当执行 Maven 构建的时候,激活的 profile 会将仓库配置应用到项目中去。

    配置了上述配置,Maven 除了从 Nexus 下载构件之外,还会不时地访问中央仓库 central,如果希望所有 Maven 下载请求都仅仅通过 Nexus,这个时候需要配置镜像。

     1 <settings>
     2     ...
     3     <mirrors>
     4         <mirror>
     5             <id>nexus</id>
     6             <mirrorOf>*</mirrorOf>
     7          <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
     8         </mirror>
     9     </mirrors>
    10     <profiles>
    11         <profile>    
    12         <id>nexus</id>
    13         <repositories>
    14             <repository>
    15                 <id>nexus</id>
    16                 <name>Nexus</name>
    17                 <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
    18                 <releases>
    19                      <enabled>true</enabled>     
    20                 </releases>
    21                 <snapshots>
    22                      <enabled>true</enabled>
    23                 </snapshots>
    24             </repository>
    25         </repositories>
    26         <pluginRepositories>
    27             <pluginRepository>
    28                 <id>nexus</id>
    29                 <name>Nexus</name>
    30                 <url>http://10.70.8.36:8081/nexus/content/groups/public/</url>
    31                 <releases>
    32                      <enabled>true</enabled>     
    33                 </releases>
    34                 <snapshots>
    35                      <enabled>true</enabled>
    36                 </snapshots>
    37             </pluginRepository>
    38         </pluginRepositories>
    39     </profile>
    40     </profiles>
    41 
    42     <activeProfiles>
    43         <activeProfile>nexus</activeProfile>
    44     </activeProfiles>
    45     ...
    46 </settings>    

    仓库及插件仓库配置的 id 都是 central,他们覆盖了超级 POM 中央仓库的配置,它们的 url 已经无关紧要,因为所有的请求都会通过镜像访问私服地址。配置仓库及插件仓库的主要目的是开启对快照版本下载的支持,当 Maven 需要下载发布版或快照版构件的时候,它首先检查 central,看该类型的构件是否支持,得到正面的回答之后,再根据镜像匹配规则转而访问私服仓库地址。

  • 相关阅读:
    (82)zabbix如何选择适合的监控类型
    (80)zabbix性能优化中的几个建议
    (79)zabbix key总是not supported的解决方法
    (78)zabbix值缓存(value cache)说明
    Centos7搭建docker仓库
    centos7安装docker
    Win10调整MTU值
    nginx配置ssl证书
    CentOS7.6配置do.cker和K.B.S
    RAID阵列盘有一块状态变为外来处理方法
  • 原文地址:https://www.cnblogs.com/microcat/p/7243604.html
Copyright © 2020-2023  润新知