将自己的写的 maven 构件发布到 nexus 私服

Nexus服务器用途

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

Nexus服务器优点

传统的中央仓库的地理位置比较远,因此,当公司开发人员数量越来越多时,如果不架设一台自己的Nexus服务器,会产生大量的流量阻塞带宽,并且在出现一些不可抗原因(光缆被挖断)导致无法连接到中央仓库时,开发就会因为无法下载相关依赖包而进度停滞。因此在本地环境部署一台私有的Nexus服务器来缓存所有依赖包,并且将公司内部开发的私有包也部署上去,方便其他开发人员下载,是非常有必要的。因为 Nexus 有权限控制,因此外部人员是无法得到公司内部开发的项目包的

将自己的写的 maven 构件发布到私服
1、在 pom.xml 文件中声明
声明快照发布的宿主仓库和 release 版本发布的仓库。

<distributionManagement>
    <snapshotRepository>
        <id>maven-nexus-snapshots</id>
        <name>maven-nexus-snapshots</name>
        <url> http://192.168.0.116:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
    <repository>
        <id>maven-nexus-repository</id>
        <name>maven-nexus-repository</name>
        <url>http://192.168.0.116:8081/nexus/content/repositories/releases/</url>
    </repository>
</distributionManagement>

Maven 区别对待 release 版本的构件和 snapshot 版本的构件, snapshot 为开发过程中的版本,实时,但不稳定,release版本则比较稳定。Maven 会根据你项目的版本来判断将构件分发到哪个仓库。

2、在 settings.xml 文件中配置
由于用 Maven 分发构件到远程仓库需要认证,须要在~/.m2/settings.xml中加入验证信息:

<server>
    <id>maven-nexus-snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>maven-nexus-repository</id>
    <username>admin</username>
    <password>admin123</password>
</server>

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

附:发布 release 版本时发生错误 Failed to transfer file … Retrun code is 401
这是因为: Nexus中 Releases 仓库默认的 Deployment Policy是“Disable Redeploy”,所以无法部署的问题在这个地方,解决方法是将其修改为“Allow Redeploy”就可以了。

eclipse 的控制台显示:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值