大部分远程仓库无须认证就可以访问,但有时候出于安全方面考虑,我们需要提供认证信息才能访问一些远程仓库。
配置认证信息和配置仓库信息不同,仓库信息可以直接配置在POM文件中,但是认证信息必须配置在settings.xml文件中。这是因为POM往往是被提交到代码仓库中供所有成员访问的,而settings.xml一般只放在本机。所以,在settings.xml中配置认证信息更为安全。
<servers>
<!-- server
| Specifies the authentication information to use when connecting to a particular server, identified by
| a unique name within the system (referred to by the 'id' attribute below).
|
| NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
| used together.
|
-->
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
</servers>
Maven使用settings.xml文件中并不显而意见的servers元素及其子元素server配置仓库认证信息。以上配置中仓库的认证用户名,认证密码。关键是这里的id元素,settings.xml中的server元素的id必须与POM中需要认证的respository元素中的id完全一致。换句话说,正式这个id将认证信息与仓库配置联系在了一起。