nexus 503和401错误

之前因为学校考试环境部署,专门的学习了一小段的nexus,其实是离不开maven的学习的,当时大大小小的问题碰到不少,今天一个小师妹的一个问题还是让我产生了思考:

相同的问题引起的原因可能是千差万别的,但其根源是不变的,之前也是疏于记录,对其规律没有很好的,今天主要记录一下503和401这两个问题:

503:不能连接到服务

这里写图片描述

分析:
1.连接不到服务最容易想到的就是该服务是否开启,最简单的方法就是访问一下,如果能访问则没有问题,如果不能这个时候就需要做两件事情:
1)检查防火墙(在这里直说linux的,windows的请自行百度)

firewall-cmd --state   #检查防火墙
service firewalld stop   #关闭防火墙

2)检查nexus服务

ps -ef |grep nexus   #检查服务是否开启
/usr/local/nexus/bin/nginx start  #开启nexus服务

2.检查nexus Web端是否正常工作(这个也是在今天发现的一个问题)
这里写图片描述
在web的可以看见这个仓库的状态已经不提供服务,一般很少会出现这种问题,也可以会当时不用了,后来又用了而忘记了更改状态的情况,最保险的就是点击这个状态后面的地址,如果出现下图证明是仓库本身有了问题
这里写图片描述
3.是否存在IP冲突,这个就属于网络层次的了,如果真的排除了上面两种情况,这个便也需要排查一下了,这个是网友们的建议,没有碰到过还真是不容易想出来
4.确定访问者和nexus是否在一个局域网或者是否有外网可以直接用,我记得我有个同事,他出差的那个公司有两个局域网竟然,如果要互通需要申请,当时就是互ping,总之具体问题在具体分析,主要就是不要乱,一类类型就往这方面找原因

401:没有通行证
这个可能是就是没有,也有可能是本身有却没有带着,也可能是马虎带错了
这里写图片描述

分析:
这个原因就太多了,先说一下自己碰到过的
1.配置的字段和Web端的不一致,地址多字少字,或者server仓库不全,或者多个环境下的active节点错误,贴出一个正确的配置供大家参考(本段配置的注意事项见配置下面)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <!-- 设置本地仓库路径 -->
    <localRepository>G:\maven\repo</localRepository>

    <!-- 设置发布 jar 包时的用户名及密 -->
    <servers>
        <server>
            <id>dynamic-public</id>
            <username>用户名</username>
            <password>密码</password>
        </server>
        <server>
            <id>dynamic-releases</id>
            <username>用户名</username>
            <password>密码</password>
        </server>

        <server>
            <id>dynamic-snapshots</id>
            <username>用户名</username>
            <password>密码</password>
        </server>
        <server>
            <id>thirdparty</id>
            <username>用户名</username>
            <password>密码</password>
        </server>       
    </servers>

    <!-- 设置 central 的路径等,覆盖了maven module builder里面的central配置 -->
    <profiles>
        <profile>
            <id>central</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <name>Central</name>
                    <url>自己的地址</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <name>Central</name>
                    <url>自己的地址</url>
                </pluginRepository>
            </pluginRepositories>
        </profile> 
    </profiles>

    <activeProfiles> 
        <activeProfile>central</activeProfile>
    </activeProfiles>
</settings>

说明:
server对应的就是nexus里面的仓库,需要从哪些仓库拉取构件就把哪些仓库配置在这里,id要和仓库的id一致,如果用到了group,也要把group配置在这里
profiles是节点的意思,因为一套环境完全可以部署在不同的虚拟机上这时候也就地址不同,所以我们可以配置多个profiles,这个id可以随便起名字,不过需要注意的是我们每次只会用一个profiles,使用哪一个是有activeProfiles标签来决定的,这个也是id的重要性
在一个Profiles里面可以有多个profile,每个profile对应着仓库的地址,但是我用了group,所以只需要配置一个即可,如果没有用group,则需要有几个server就配置几个profile

附上pom文件的配置

<distributionManagement> <!-- 远程部署管理信息 -->
        <repository> <!--部署项目产生的构件到远程仓库需要的信息 -->
            <id>自己的仓库名</id>
            <name>Nexus Release Repository</name>
            <url>自己的地址</url>
        </repository>
        <snapshotRepository> <!-- 构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库 -->
            <id>自己的仓库名</id>
            <name>Nexus Snapshot Repository</name>
            <url>自己的地址</url>
        </snapshotRepository>
    </distributionManagement>

再多说一句,一般settings里面的配置是拉取jar包的,pom里面的配置是depoly的,不过deploy的时候是会进行编译打包的,这个时候需要的jar包本地没有的话也是有拉取jar的操作的

2.基本过了第一步就可以解决了,不过最近又学习到了一个settings文件优先级原因.

pom.xml>用户即setting(.m2setting)>globalsetting(maven解压后的)

一般我们都是会借助IDE来进行编译的,一般我们在settings里面配置了maven的路径就直接用了,也不会出什么问题,如图
这里写图片描述

但是如果我们从文件目录下进行操作,如图,这个时候settings的访问路径就是pom.xml,.m2下的settings,globalsettings,按照这个顺序依次查找,找到就停止
这里写图片描述

这个时候如果.m2下面的settings文件没有删除或者是默认的访问自己搭建的私服时就可能会报401了,这并不是因为之前的配置有问题,而是根本没到自己配置的settings文件.如何确定在用哪个配置文件呢

mvn help:effective-settings

运行完毕后我们就可以看到当前生效的settings文件是哪一个了,如果是.m2下面的,要不就直接删掉这个文件,要不就给这个文件配置一套完整的配置,如果还是不行便看第三步

3.这个是几率最小的了,也就是密码可能输入错误,或者不是用的管理员权限的用户名,这个找私服负责人确认一下即可

总结:
这两个错误代码的原因目前就碰到这么多,希望博友有其他原因的在评论中进行交流

猜你喜欢

转载自blog.csdn.net/ljm15832631631/article/details/79710375