使用maven在nexus发布或者下包的时候,报4xx错误

发布项目时,遇见了一下异常
Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project ias-parent: Failed to deploy artifacts: Could not transfer artifact org.ias:ias-parent:pom:1.0.0.BUILD-20210414.081402-3 from/to snapshots (http://139.155.41.148:8081/repository/maven-snapshots/): Failed to transfer file http://139.155.41.148:8081/repository/maven-snapshots/org/ias/ias-parent/1.0.0.BUILD-SNAPSHOT/ias-parent-1.0.0.BUILD-20210414.081402-3.pom with status code 401

发布或者下包的时候,报4xx错误,几乎就是权限不足,下面我把可能遇到的问题总结一下,至于怎么解决,网上一大把,我就不多加赘述了.

1,maven文件设置错误
(1)ctrl+alt+s,搜索maven,配置的setting.xml是否正确
(2)软件使用的setting.xml与配置的不符合,我用的是idea,他会把配置的文件,复制一份到c盘,一般情况,在修改了之后,它会提示里import update ,如果遇见特殊情况,重启既可以解决

2.setting.xml配置错误
(1)setting.xml中,用户密码是否正确
(2)setting.xml中,的id是否和 中的id相同
(3)setting.xml中, Public是否和想要使用中的id相同

3.项目中的pom.xml错误
(1)需要发布时,pom.xml中是否添加了发布地址:


releases
releases
http://127.0.0.1:8000/repository/maven-releases/


snapshots
snapshots
http://127.0.0.1:8000/repository/maven-snapshots/

(2)发布地址中的id,是否和setting.xml中,中的id相同

(3)是否需要发布的每个模块的pom.xml都就行了正确配置.
ps:我的错误就是第(2),(3)条,特别第三条,卡了我很久…

4.nexus是否设置了允许相关操作
像下载,发布,重复发布,上传架包等等都有具体的权限设置,有可能需要修改

我还有一篇关于具体怎么配置nexus的文章,还有如何在nexus上传自己私有java架包,需要可以看一下

<think>嗯,用户想基于两台虚拟机,一台Rocky9部署Nexus,另一台Ubuntu通过本地源安装deb,并且能用Maven编译Spring Boot项目。首先,我需要理清楚整个流程,确保每个步骤正确。 首先,Rocky9上部署NexusNexus通常用来做私有仓库,支持多种格式,比如Maven、Docker、APT等。用户可能需要配置APT仓库在Nexus里,这样Ubuntu就可以通过这个仓库安装deb。不过,Nexus默认可能没有启用APT仓库,需要手动配置。可能需要先安装Java,因为Nexus需要Java环境。然后下载Nexus的tar,解压安装,配置服务,设置开机启动,修改防火墙规则开放8081端口。安装完成后,初始密码在sonatype-work目录里,登录后要修改密码,创建APT仓库。 接下来是Ubuntu那边配置本地源,也就是指向Nexus的APT仓库。需要确保Ubuntu能访问Rocky9的IP和端口。可能需要编辑/etc/apt/sources.list.d/nexus.list,添加deb的源地址。然后apt update更新源,之后就可以用apt安装了。这部分需要检查Nexus的APT仓库配置是否正确,以及权限是否开放,是否需要认证,如果有的话,得在sources.list里加上用户名密码。 然后是Maven编译Spring Boot项目。Maven的settings.xml需要配置NexusMaven仓库地址,这样构建时会从Nexus拉取依赖。可能需要配置mirror或者repository,具体要看Nexus里的Maven仓库设置。还要确保Spring Boot项目的pom.xml里的仓库配置正确,或者覆盖全局配置。可能需要测试构建,看依赖是否能正确下载。 可能遇到的问题:Nexus服务没启动,防火墙阻止访问,APT仓库配置错误导致Ubuntu无法更新源,Maven配置不正确导致依赖下载失败。需要一步步排查,比如检查端口连通性,查看Nexus日志,确认APT仓库的URL是否正确,Maven的settings.xml是否指向正确的仓库。 另外,用户提到的是本地源安装deb,这里的本地源可能指的是Nexus作为APT仓库,而Ubuntu从这个仓库安装,而不是传统的本地文件系统。所以需要确认Nexus是否支持APT仓库,或者是否需要安装插件。比如Nexus Repository Manager 3默认可能不支持APT,需要启用相关的仓库类型,可能需要使用raw仓库或者其他方式。或者用户可能误解了本地源的概念,可能需要进一步澄清,但根据描述,应该是用Nexus作为APT仓库。 总结步骤:Rocky9安装Nexus,配置APT仓库,Ubuntu配置APT源指向Nexus,测试安装deb;配置Maven使用NexusMaven仓库,编译Spring Boot项目。需要注意Nexus的仓库类型是否正确,网络连通性,以及各个客户端的配置是否正确。</think>好的,我将分步骤说明如何实现这个需求,以下是技术实现流程: --- ### **一、环境准备** 1. **Rocky9虚拟机** - IP地址:假设为`192.168.1.100` - 开放端口:8081(Nexus默认端口) - 确保已安装Java环境:`sudo dnf install java-11-openjdk` 2. **Ubuntu虚拟机** - IP地址:假设为`192.168.1.200` - 确保可访问Rocky9的8081端口 --- ### **二、Rocky9部署Nexus** #### 1. 下载并安装Nexus ```bash # 创建专用用户 sudo useradd nexus -s /sbin/nologin sudo mkdir /opt/nexus && cd /opt/nexus # 下载Nexus sudo wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz sudo tar -zxvf latest-unix.tar.gz sudo chown -R nexus:nexus /opt/nexus # 配置服务 sudo vi /etc/systemd/system/nexus.service ``` 服务文件内容: ```ini [Unit] Description=Nexus Service After=network.target [Service] Type=forking User=nexus ExecStart=/opt/nexus/nexus-3.xx.xx/bin/nexus start ExecStop=/opt/nexus/nexus-3.xx.xx/bin/nexus stop Restart=on-failure [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start nexus sudo systemctl enable nexus ``` #### 2. 初始化Nexus 1. 访问 `http://192.168.1.100:8081` 2. 获取初始密码:`sudo cat /opt/nexus/sonatype-work/nexus3/admin.password` 3. 按向导完成配置,创建APT仓库: - 选择 `Repository > Create Repository > apt (hosted)` - 设置名称:`ubuntu-local` - 勾选 `Allow redeploy`(允许重复上传) --- ### **三、Ubuntu配置本地APT源** #### 1. 配置APT源指向Nexus ```bash # 创建源配置文件 sudo vi /etc/apt/sources.list.d/nexus.list ``` 添加内容: ```text deb [trusted=yes] http://192.168.1.100:8081/repository/ubuntu-local/ / ``` 更新源: ```bash sudo apt update ``` #### 2. 上传debNexus仓库 通过Nexus Web界面上传: 1. 访问 `http://192.168.1.100:8081` 2. 进入 `ubuntu-local` 仓库 3. 拖拽本地deb到界面中 或使用curl上传: ```bash curl -u admin:密码 -X POST "http://192.168.1.100:8081/service/rest/v1/components?repository=ubuntu-local" -F "apt.asset=@/path/to/package.deb" ``` #### 3. 测试安装deb ```bash sudo apt install 名 ``` --- ### **四、Maven编译Spring Boot项目** #### 1. 配置Maven仓库指向Nexus 编辑 `~/.m2/settings.xml`: ```xml <mirrors> <mirror> <id>nexus-maven</id> <name>Nexus Maven Mirror</name> <url>http://192.168.1.100:8081/repository/maven-public/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> ``` #### 2. 编译项目 ```bash mvn clean package -DskipTests ``` --- ### **五、验证流程** 1. **APT源验证** - `apt policy 名` 查看是否来自Nexus仓库 2. **Maven验证** - 检查构建日志是否从Nexus下载依赖 - 成功生成`target/*.jar` --- ### **常见问题** 1. **Nexus端口不通** - 检查防火墙:`sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent` 2. **APT更新失败** - 检查 `/etc/apt/sources.list.d/nexus.list` 格式 - 确认Nexus仓库权限为`Allow anonymous access` --- 通过以上步骤,您已实现基于Nexus的APT本地源和Maven私服集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值