设为首页 加入收藏

TOP

Nexus私有maven库部署和使用(一)
2023-07-25 21:41:47 】 浏览:93
Tags:Nexus 私有 maven

原文地址:Nexus私有maven库部署和使用 - Stars-One的杂货小窝

前段圣诞节前后,Jitpack网站突然崩溃了,无法下载依赖,然后过了一个星期才解决了,好在没啥紧急的Android开发任务,没啥影响,但是也给我了一些提醒,可能搭建个私有库会比较保险,于是就是研究了私有库nexus的部署和使用

介绍

nexus私有库,支持npm,java,pythod等库的存放,支持的也比较全面,搭建起来也十分简单。

除此之外,还可以拿私有库当一个镜像中转站,比如说阿里云镜像,实际上它也是将一些中央仓库的库都下载保存下来了,以防中央仓库无法访问导致依赖无法下载的问题,有个缺点就是阿里云没有支持Jitpack这种小众网站

我们可以利用私有库,把Jitpack这种网站也加入进来,也提高了下载依赖的速度和环境的配置

部署

1.下载运行

前往官方下载页下载安装文件,这里以window为例,下载了window的压缩包文件

之后解压,得到两个文件夹目录

打开sonatype-work\nexus3\etc\nexus.properties文件,修改端口号,如下图所示,我是修改为了9888端口(这里需要运行nexus之后,待其安装好相关环境之后才会有这个nexus.properties的文件)

之后进入到nexus-3.45.0-01\bin命令下,打开cmd窗口,运行命令nexus.exe /run,即可将nexus运行起来了

2.登录

运行起来后,我们访问localhost:9888即可进入到web页面

点击右上角的账号登录,提示我们可以在该路径找到用户名和密码

账号名为admin,密码则是你用记事本打开那个admin.password文件里的内容

登录成功后会提示我们输入新密码来修改密码,照着走即可

下一步需要设置是否公开库的选项,不公开的话,下载则需要设置账号和密码才能下载库,我这里就选择了不公开(第二个选项)

之后完成就可以使用了

介绍

首先,先介绍说明的对应的仓库信息

  • maven-releases 发行版组件, hosted 类型
  • maven-snapshots:快照(调试版本)组件, hosted 类型
  • maven-central:maven 中央库,就是代理 https://repo1.maven.org/maven2/,proxy 类型
  • maven-public:仓库分组概念,虚拟的 把上面三个仓库合并形成一个组,方便引用, group 类型

配置maven依赖的时候,我们只需要引用maven-public的地址即可

而我们需要上传组件,可以上传到maven-releasesmaven-snapshots这两个仓库中即可

原理如下:

Maven中使用

1.手动上传jar包

进入到上传jar包的页面

选择一个jar文件进行上传

然后上传成功,就可以查看到我们的jar包了

2.自动上传jar包

首先,需要maven的setting.xml文件中配置私服的账号和密码

<server>
  <id>myLocalRepo</id>
  <username>admin</username>
  <password>admin</password>
</server>

PS:注意外层还有个servers标签

之后根据你的需要,在项目里的pom.xmlsetting.xml中添加配置distributionManagement标签信息

项目里,则是单独配置;而setting.xml,则是全局配置的

这里我以项目里为例,在pom.xml中加上配置

 <distributionManagement>
        <repository>
            <id>myLocalRepo</id>
            <name>本地私有库</name>
            <url>http://localhost:9888/repository/maven-releases/</url>
        </repository>
<!--  配置快照版本的仓库上传地址,这里不演示了,自行修改      -->
<!--        <snapshotRepository>-->
<!--            <id>myLocalRepo</id>-->
<!--            <name>本地私有库</name>-->
<!--            <url>http://localhost:9888/repository/maven-snapshots/</url>-->
<!--        </snapshotRepository>-->
    </distributionManagement>

PS:外层还有个project标签,注意id要与上面的serve中的id一致!

这里如果你配置了snapshotRepository,当你当前的pom文件版本带有snapshot后缀,就会上传到snapshotRepository对应的仓库里

使用maven命令进行发布jar包,注意项目路径

mvn deploy

或者直接点右侧的maven菜单也可以进行

这里需要注意的是,如果你的pom文件里的版本是有snapshot结尾,发布后会jar包会出现在maven-snapshots仓库中

出现问题

1.出现405错误

因为仓库用的不是host类型的,所以导致的错误,更换仓库地址即可解决问题

2.上传出现400问题

错误如下提示:

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project mydemo: Failed to deploy artifacts: Could not transfer artifact site.starsone:mydemo:jar:1.0-20230105.091429-1 from/to myLocalRepo (http://localhost:9888/repository/maven-releases/): Transfer failed for http://localhost:9888/repository/maven-releases/site/starsone/mydemo/1.0-SNAPSHOT/mydemo-1.0-20230105.091429-1.jar 400 Repository version policy: RELEASE does not allow version: 1.0-20230105.091429-1

解决方案:

由于当前的pom里面的版本带有关键字snapshots,而上传的仓库只能接收release版本的,所以导致的错误

将版本的snapshots关键字删除即可解决问题

3.重复发布版本失败

当你发布了一个1.0版本后,然后更改了代码,想重

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇数据类型学习与拓展 下一篇读Java性能权威指南(第2版)笔记..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目