在mac版idea使用过程中有时候会出现deploy时候报401错误,如图:
经过详细的论证分析,找到如下原因及解决方案:
原因一、pom 文件李配置的私服仓库地址和settings.xml里配置的用户名和密码没有匹配上
1、pom.xml里的仓库配置:
<!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件jar等部署到远程仓库。 -->
<distributionManagement>
<repository><!--部署项目产生的构件到远程仓库需要的信息 -->
<id>releases</id><!-- 此处id和settings.xml的id保持一致 -->
<name>Release Deploy</name>
<url>http://10.60.145.41:881/repository/maven-releases/</url>
</repository>
<snapshotRepository><!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->
<id>snapshots</id><!-- 此处id和settings.xml的id保持一致 -->
<name>Snapshot Deploy</name>
<url>http://10.60.145.41:881/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
2、此时对应的setting.xml里的配置信息为:
<server>
<id>snapshots</id><!-- 此处id和上面pom.xml的id保持一致 -->
<username>nandao</username>
<password>123456</password>
</server>
<server>
<id>releases</id><!-- 此处id和上面pom.xml的id保持一致 -->
<username>nandao</username>
<password>123456</password>
</server>
3、检查两者信息是否一致,就可以解决问题。如果还是报401问题,则可能是下面的原因。
原因二、idea中自定义的settings.xml配置没有生效
1、idea中的配置:
但是经过严格验证,在mac电脑上可能没生效,原因可能是配置环境变量的问题。
2、此时我们应该采用idea 默认的配置,即把该自定义setting.xml配置放到.m2的目录下
3、检查环境变量配置,一切就会OK.
4、maven deploy 已存在的包的时候出现400错误,这个问题不大。