由于markdown的兼容性问题,【本地环境配置】一节格式比较乱,可以 查看原文
配置说明: 服务器禁用匿名访问后,必须在本地的maven配置文件settings.xml中保存自己的用户名和密码。settings.xml中可以直接保存明文,但是这样不太安全,所以需要根据maven提供的方法针对settings.xml中的密码进行加密。
maven版本: maven的最低版本要求为3.2.1,推荐使用3.5.0以上版本(3.5.0是本文档编写时2017-06-26的最新release版本)。maven下载地址,maven安装说明
参考文档: maven settings.xml说明文档、maven密码加密说明
操作建议:基于大家操作时碰到的问题,提出如下建议: 1. settings.xml最好放到{user.home}/.m2下,最好不要修改{maven安装目录}/conf/settings.xml 2. 对于settings.xml中已经存在的server, mirror, profile等元素(尤其是按照之前巨商汇文档配置过的),如果不能明确的知道其含义,直接删掉吧。
操作步骤: 1. 生成主密码密文:在命令航中执行
mvn --encrypt-master-password 个人主密码
这个主密码是只有自己知道的密码,是为了给maven服务器分配的密码进行加密的,命令执行完成后会得到一个被大括号包裹的字符串,如:{JgygRiRVmL0HeUjAg8aNUGRulAuxRxK/bnOxcS/ZoQU=}
保存新建${user.home}/.m2/settings-security.xml文件,文件内容如下:
<settingsSecurity>
<master>{JgygRiRVmL0HeUjAg8aNUGRulAuxRxK/bnOxcS/ZoQU=}</master>
</settingsSecurity>
其中master元素的值为上一步中输出的主密码的密文{JgygRiRVmL0HeUjAg8aNUGRulAuxRxK/bnOxcS/ZoQU=}
使用主密码给maven服务器密码(统一的ldap密码)加密:在命令行中执行 mvn --encrypt-password ldap密码
根据提示输入maven服务器的密码(统一的ldap密码),确定后得到加密后的密文(被大括号包裹),如:{oZwryAZfIEwHXr2yNfQmrYDFO87GmdYzHBVoFTIa5Aw=}
配置本地的settings.xml,在${user.home}/.m2/settings.xml中添加自定义的mirror元素和server元素。 将id为**jsh-archiva-mirror**的mirror元素添加到settings.xml的mirrors中,添加完后mirrors元素应至少包含一个id为jsh-archiva-mirror的mirror元素,示例如下:
<mirrors>
<mirror>
<id>jsh-archiva-mirror</id>
<mirrorOf>central,jsh.archiva,dbm.archiva,mojo-snapshot,coova,nexus</mirrorOf>
<name>jsh-archiva-mirror</name>
<url>http://12.168.3.17:9080/repository/public/</url>
</mirror>
</mirrors>
将id为**jsh-archiva-mirror**的server元素添加到settings.xml的servers中,添加完成后servers中的元素应至少包含一个id为jsh-archiva-mirror的server元素,如果有deploy权限的账户还需要添加id为jsh.archiva.internal和jsh.archiva.snapshots的server。server元素的password元素的值为上一步中得到的密文,username的值为自己的ldap用户名,示例如下:
<servers>
<server>
<id>jsh-archiva-mirror</id>
<username>wangjingjing</username>
<password>{oZwryAZfIEwHXr2yNfQmrYDFO87GmdYzHBVoFTIa5Aw=}</password>
</server>
<server>
<id>jsh.archiva.internal</id>
<username>wangjingjing</username>
<password>{oZwryAZfIEwHXr2yNfQmrYDFO87GmdYzHBVoFTIa5Aw=}</password>
</server>
<server>
<id>jsh.archiva.snapshots</id>
<username>wangjingjing</username>
<password>{oZwryAZfIEwHXr2yNfQmrYDFO87GmdYzHBVoFTIa5Aw=}</password>
</server>
</servers>
需要注意的是mirror和server中的id必须一致。
settings.xml样例 settings-security.xml样例