一、私服版本
nexu
二、介绍
是种特殊的Maven仓库一般用于公司,比如三十个员工开发一个项目,需要每个人都联网去下载jar,每个人都很痛苦。此时公司可以搭建一个私服,让其中一人去私服下载jar,这样私服中就缓存了那些jar包,其他人在下载的时候就无需重新从远程仓库下载了,直接从私服缓存的地方拿下来即可
三、安装
直接将war包丢到Tomcat的webapps下即可。
测试:
四、账号密码
默认为admin/admin123
五、邮箱配置
1、为什么配置邮箱
密码忘了,修改密码时候用。
2、怎么配置
首先必须登录。
username和System Email要一致。
这里进行测试配置是否成功。
若成功,则save即可。
3、扩展
在这里可以新增用户和为某些用户进行分配角色和配置邮箱。
六、内置仓库一览
1、场景说明
假设某公司建立了maven项目X,公司内部搭建了私服。项目X依赖很多开源库,如Junit等,这些jar能从中央仓库获取,因此maven Central代理仓库会被用来代理中央仓库的内容,并在私服上缓存下来,X还依赖于某个Google Code的项目,其jar在中央仓库不存在,只存在于Google Code仓库,所以Google Code代理仓库会被用来代理并缓存这样的构建等等由于X用到了上述列表中很多仓库,为每个仓库声明Maven配置有比较麻烦,因此可以直接使用Public Repositories仓库组来统一管理。
2、场景图示
3、内置仓库纵览图
七、宿主仓库
八、代理仓库
注意两点:
1、 我这里推荐使用阿里云的远程仓库。
2、开启Download Remote Indexes。他会定时下载一些索引。
九、仓库组
十、配置Maven从nexus私服下载构件
1、单独项目配置
仅在当前项目生效,在单独项目的里配置
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://ip:por;/url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http:// ip:port ;/url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
2、所有项目配置
修改maven的
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://ip::port ;/url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://ip:por;/url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<!-- 每次建立maven都默认是jdk1.5的,此配置可以让建立maven项目默认jdk为1.7 -->
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.com;1.7</maven.com;
<maven.com;1.7</maven.com;
<maven.com;1.7</maven.com;
</properties>
</profile>
</profiles>
<!-- 激活nexus的profile -->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
说明:这个配置已经能让本机所有的maven项目从Nexus下载构件,但Maven还会不时地访问中央仓库centeral,可以配置一个镜像,地址为私服,这样maven对任何仓库的构件下载请求都会转到私服中,如下配置
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus</name>
<url>http://ip:por;/url>
</mirror>
</mirrors>
十一、项目构件部署至私服
1、 配置私服用户名密码
中
<servers>
<!--发布版 -->
<server>
<id>nexus-realease</id>
<username>admin</username>
<password>admin123</password>
</server>
<!--快照版 -->
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
2、 pom定义
在项目中的
<distributionManagement>
<!-- 发布版 -->
<repository>
<!—id与发布版一致 -->
<id>nexus-release</id>
<name>Nexus Release Repository</name>
<url>http://ip:por;/url>
</repository>
<!-- 快照版 -->
<snapshotRepository>
<!—id与快照版一致 -->
<id>nexus-snapshots</id>
<name>Nexus Snapshots Repository</name>
<url>http:// ip:port ;/url>
</snapshotRepository>
</distributionManagement>
3、发布方式
配置好后,运行maven的deploy命令即可打包上传到nexus。若你version写的是快照,则会上传到
,若version写的是发布版,则会上传到
十二、部署第三方jar
十三、小结
我个人经验而谈,一般公司做法就是分配用户和邮箱(甚至直接用admin,用户都不分配),然后将代理仓库类型的Central仓库配置成阿里云,开启自动下载索引文件即可。