Maven私服搭建- nexus
公司内部搭建。
测试团队,运维团队,开发团队,所有团队共用。私服本身也是一个公司内的远程仓库。一般在公司内的某个开发机房中的一台服务器上。它本身也需要去链接互联网的远程仓库。
1.1搭建私服
解压启动
启动目录:
根据个人的系统选择启动目录:
我的电脑是win 10 64 位
在bin/jsw下有不同的版本,这里我选择window 64位操作系统的版本。
console-nexus.bat 是以命令窗口的形式启动,关闭后服务停止
install-nexus.bat 是设置开机启动,在服务中可以看成到该服务为开机自动启动
stop-nexus.bat 是停止服务
uninstall-nexus.bat 是卸载nexus
双击启动:
默认端口是8081,可以修改端口后启动:
修改端口
D:\Program Files\nexus-2.14.4-03-bundle\nexus-2.14.4-03\conf\nexus.properties
启动后输入:
http://localhost:8081/nexus
初始用户名:admin 密码:admin123
界面如下:
看到:
仓库的名称:
对外给团队使用:
公有组合地址:[http://localhost:8081/nexus/content/groups/public/]
对比: [http://maven.aliyun.com/nexus/content/groups/public]
仓库:
远程仓库:
maven中央库:
maven-central默认从https://repo1.maven.org/maven2/拉取jar
私服:是一种特殊的远程仓库,它是架设在局域网内的仓库。
maven-releases:私库发行版jar
maven-snapshots:私库快照(调试版本)jar
maven-public:把仓库组合在一起对外提供服务,这个地址配置在本地maven基础配置settings.xml中使用。
如果配置内容如下:
<mirror>
<id>central</id>
<mirrorOf>*</mirrorOf>
<name>central-mirror</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
组合内部各个仓库对外提供服务:
本地仓库:
每个用户只有一个本地仓库,默认是在~/.m2/repository/。
可以修改 settings.xml 可以修改默认的本地仓库地址
如果公司内部搭建了私服服务器,公司内部所有团队访问地址:
总结:这种方式,在maven的核心配置文件中,指向本地仓库,然后指向公司内部的私服远程仓库,如果私服远程仓库没有jar包,再从互联网的远程仓库去下载对应的jar 包。
重点 :
上传第三方jar包提供对外使用,把开发的jar包上传到私服服务器,项目之间共享调用。
方案一 :
选择和填写参数(groupId、artifactId、version)选择jar包
上传
点击后:
最后:
验证
开发团队,测试或者运维打开私服地址下载:
[http://localhost:8081/nexus/content/groups/public/]
存储真实地址:(了解)
D:\Program Files\nexus-2.14.4-03-bundle\sonatype-work\nexus\storage\thirdparty\com\qf\service\demo2\1.0
本质:就是把你本地的jar上传到公司的私服服务器。然后团队就可以共用了。
方案二:
项目直接调用
项目中配置私服地址:直接通过项目发布到私服服务器。不需要修改settings.xml仓库地址,只是针对单个项目修改测试。settings.xml正常指向阿里云的地址不受影响。
<repositories>
<repository>
<id>release</id>
<name>release</name> <url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>release</id>
<name>release</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
注意:
pom.xml的配置内容是release不是releases
正式项目:
注意版本是非快照
配置私服:
发布线上:
使用生命周期中直接部署线上指令:deploy –e 必须选择项目中配置了私服地址的项目
确认:
本地仓库:
远程私服仓库:
[http://localhost:8081/nexus/content/repositories/releases]
通过公有地址所有团队可以统一访问:
[http://localhost:8081/nexus/content/groups/public/]
(公司内部一般会有域名或者VIP地址 )
web项目同样可直接部署:
查看:
war包部署不是为了给其他团队直接依赖调用,而是给测试工程师测试或运维工程师线上部署。