转自:http://langchenfujian.iteye.com/blog/1452512
1、设计原理图
1.1、局域网电脑需要maven构件时,发现本地仓库无此稳定版本构件时到局域网私服下载(开发版本的构件,无论何时都到私服上检验时间戳,使用最新的开发版本,如果私服的版本更新,那么就下载私服的构件)。
1.2、局域网私服收到构件请求后,查看本地是否有此构件的缓存,如果没有则到公网的maven库下载,如果公网上也没有此构件则返回下载失败。
1.3、局域网电脑可以将自己开发好的构件上传到局域网私服,这里的构件可以是稳定版本和开发版本的,然后这些构件可以供其他的局域网电脑下载使用。在项目开发的过程中,可以使用此方法在构件级别上进行合作开发。
2、局域网私服内部结构和工作原理
3、局域网电脑Maven配置信息
3.1、settings.xml文件配置
配置信息1:
<mirrors>
<mirror>
<id>localmirrorId</id>
<mirrorOf>*</mirrorOf>
<name>localmirrorId</name>
<url>http://host:port/nexus/content/groups/public/(私服仓库组url)</url>
</mirror>
</mirrors>
作用:设置一个镜像,代替所有的下载仓库。* 表示所有仓库。也就是当局域网电脑需要下载构件时,就会到url参数的值所在的仓库查找下载构件。
配置信息2:
<servers>
<server>
<id>LAN snapshots</id>
<username>your username</username>
<password>your password</password>
</server>
<server>
<id>LAN releases</id>
<username>your username</username>
<password>your password</password>
</server>
</servers>
作用:当执行上传构件操作时(Maven命令 mvn deploy),可能需要权限(私服的上传构件权限),id参数值对应以下配置的id值(以下配置代码放置 在<profile></profile>节点中,使之在所有项目中的pom.xml中生效)。
<distributionManagement>
<repository>
<id>LAN releases</id>
<name>LAN releases</name>
<url>http://host:port/nexus/content/repositories/releases/(私服稳定版本仓库)</url>
</repository>
<snapshotRepository>
<id>LAN snapshots</id>
<name>LAN snapshots</name>
<url>http://host:port/nexus/content/repositories/snapshots/(私服开发版本仓库)</url>
</snapshotRepository>
</distributionManagement>