目录
distributionManagement中的repository
pluginRepositories中的repository
repositories中的repository
repositories中的repository表示从什么库地址可以下载项目依赖的库文件,比如:
<repositories>
<repository>
<id>crm-online</id>
<url>http://maven.xxx/nexus/content/repositories/crm-online</url>
</repository>
<repository>
<id>artifactory</id>
<url>http://mvn.ziroom.com/public</url>
</repository>
<repository>
<id>crm-snapshot</id>
<url>http://maven.xxx/nexus/content/repositories/crm-t</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
其中repository中的字段说明如下:
id,库的ID
name,库的名称
url,库的URL
layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy
releases,库中版本为releases的构件
snapshots,库中版本为snapshots的构件
- enabled,是否支持更新
- updatePolicy,构件更新的策略,可选值有daily, always, never, interval:X(其中的X是一个数字,表示间隔的时间,单位min),默认为daily
- checksumPolicy,校验码异常的策略,可选值有ignore, fail, warn
- layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy
如果需要认证才能访问,则需要在settings.xml文件中添加如下内容,并且server中的id字段的值要与repository中id字段的值相同
<servers>
<server>
<id>crm-online</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
distributionManagement中的repository
表示的是项目打包成库文件后要上传到什么库地址,比如
<distributionManagement>
<repository>
<id>crm-online</id>
<url>http://maven.xxx/nexus/content/repositories/crm-online</url>
</repository>
<snapshotRepository>
<id>crm-snapshot</id>
<url>http://maven.xxx/nexus/content/repositories/crm-t</url>
</snapshotRepository>
</distributionManagement>
与repositories中的repository不同的是,distributionManagement中分为repository和snapshotRepository,但里面的字段大致与repositories中的repository内的相同。同样,如果访问需要认证的话,也需要在settings.xml文件中设置:
<servers>
<server>
<id>crm-online</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>crm-snapshot</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
注意:其中snapshot版本的deploy时会打包上传到<snapshotRepository>标签下的仓库 正式版本的会上传到<repository>对应的从仓库
pluginRepositories中的repository
pluginRepositories中的repository是以pluginRepository表示的,它表示插件从什么库地址下载。
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://10.21.7.1:8081/repository/ai-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
它里面的字段和用法与repositories中的repository基本一致。
遇到的400及401问题
401
说明是权限问题,看下当前版本(snapshot/release)对应的setting文件中是否配置了对应私服仓库的的用户和密码
400
说明是发布权限问题,如下图snapshot版本的私服配置为Allow Redeploy, deploy不存在报错
Release版本的配置为 Disable Redeploy 存在401的问题 修改配置权限后即可
参考链接:https://blog.csdn.net/netyeaxi/article/details/95804076