maven之如何将本身的写的 maven 构件发布到 nexus 私服

概念:Nexus服务器是一个代码包管理的服务器,能够理解 Nexus 服务器是一个巨大的 Library 仓库。Nexus 能够支持管理的工具包括 Maven , npm 等,对于 JAVA 开发来讲,只要用到 Maven 管理就能够了。npm

Nexus服务器做用:由于传统的中央仓库在国外,其地理位置比较远,下载速度比较缓慢。所以,当公司开发人员数量愈来愈多时,若是不架设一台本身的Nexus服务器,会产生大量的流量阻塞带宽,而且在出现一些不可抗缘由(光缆被挖断)致使没法链接到中央仓库时,开发就会由于没法下载相关依赖包而进度停滞。所以在本地环境部署一台私有的Nexus服务器来缓存全部依赖包,而且将公司内部开发的私有包也部署上去,方便其余开发人员下载,是很是有必要的。由于 Nexus 有权限控制,所以外部人员是没法获得公司内部开发的项目包的。缓存

下面将介绍如何将本身的maven构件发布到nexus私服 上呢?服务器

第一步:maven

一、在 pom.xml 文件中声明快照发布的宿主仓库和 release 版本发布的仓库。工具

<!-- 发布构件到Nexus -->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>nexus-releases</name>
            <url>http://192.168.30.56:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>nexus-snapshots</name>
            <url>http://192.168.30.56:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

 maven中的仓库分为两种,snapshot快照仓库和release发布仓库,url

如何区分呢?spa

snapshot快照仓库用于保存开发过程当中的实时但不稳定版本(因此正式环境中不得使用snapshot版本的库),release正式仓库则是用来保存稳定的发行版本。server

定义一个组件/模块为快照版本,只须要在pom文件中在该模块的版本号后加上-SNAPSHOT便可(注意这里必须是大写)例如:<version>2.2.1-SNAPSHOT</version>xml

Maven 会根据你项目的版原本判断将构件分发到哪一个仓库。 blog

第二步:在 settings.xml 文件中配置 
因为用 Maven 分发构件到远程仓库须要认证,需要在~/.m2/settings.xml或者中加入验证信息:

 <servers>  
    <server>  
            <id>public</id>  
            <username>caicea</username>  
            <password>123456</password>  
        </server>  
    <server>  
            <id>releases</id>  
            <username>caicea</username>  
            <password>123456</password>  
        </server>  
    <server>  
            <id>snapshots</id>  
            <username>caicea</username>  
            <password>123456</password>  
        </server>  
  </servers>  

注意: settings.xml 中 server 元素下 id 的值必须与 POM 中 repository 或 snapshotRepository 下 id 的值彻底一致 。  

相关文章
相关标签/搜索