目录
1,nexus的安装和启动
2, nexus介绍
3,nexus中jar包获取流程
4,生产级nexus配置
5,配置setting,从私服下载maven依赖文件
6,配置项目,让项目能够发布到私服
7,jar包手动上传
https://download.csdn.net/download/bemavery/18520683?spm=1001.2014.3001.5501
解压缩出如下文件
nexus-3.18.1-01 : 这里包含nexus运行需要的文件
sonatype-work : 包含nexus的配置文件、日志文件、仓库文件
./bin/nexus.exe /run
打开浏览器访问http://localhost:8081/
默认管理员帐号 admin , 密码会在第一次启动的时候随机生成一个, 一旦登录成功,密码文件会消失, 记得要保存
hosted:宿主仓库,这个仓库,是用来让你把你公司内部的发布包部署到这个仓库里来,然后公司内的其他人就可以从这个宿主仓库里下载依赖去使用
proxy:代理仓库,这个仓库不是用来给你公司内部的发布包部署的,是代理了公司外部的各种仓库的,比如说java.net,codehaus,jboss仓库,最最重要的,就是代理了公司外部的中央仓库,但是这里其实可以修改为nexus连接的应该是国内的阿里云镜像仓库,阿里云去连接中央仓库
group:仓库组,其实就是将,各种宿主仓库、代理仓库全部组成一个虚拟的仓库组,然后我们的项目只要配置依赖于一个仓库组,相当于就是可以自动连接仓库组对应的各种仓库
仓库的格式是maven1或者maven2,这里现在统一都是maven2
maven-central:这是maven中央仓库的代理仓库
maven-releases:该仓库是个宿主仓库,用于部署公司内部的release版本的发布包(类似于1.0.0,,release的意思就是你的工程已经经过了完善的测试,单元测试,集成测试,QA测试,上生产环境使用了)到这个仓库里面,供其他同事在生产环境依赖和使用
maven-snapshots:该仓库是个宿主仓库,用于部署公司内部的snapshot版本的发布包到这个仓库里(如果你的某个工程还在开发过程中,测试还没结束,但是,此时公司里其他同事也在开发一些工程,需要依赖你的包进行开发和测试,联调,此时你的工程的版本就是类似1.0.0-SNAPSHOT这样的版本),供其他同事在开发和测试的时候使用
3rd party:该仓库是个宿主仓库,主要用来部署没法从公共仓库获取的第三方依赖包,比如说,你的公司依赖于第三方支付厂商的一个依赖包,那个依赖包不是开源的,是商业的包。那么你是没有办法从maven中央仓库获取的。此时,我们可能会自己手动从支付厂商那里获取到一个jar包,下载之后上传到私服里来,就放这个仓库里,3rd-party仓库
maven-public:仓库组,上面所有release仓库都在这个仓库组内
maven-central代理仓库:从直接代理maven中央仓库,修改为代理阿里云仓库,http://maven.aliyun.com/nexus/content/groups/public
nexus central Nexus http://central true true central Nexus Plugin Repository http://central true true
//这里激活的是 profile 的idnexus
注意:
和 id都是central, 覆盖超级pom文件是为了更改snapshots和releases的属性
nexus * http://localhost:8081/nexus/content/groups/public
由于我们的镜像匹配所有请求,所以所有请求都会走镜像,而镜像配置的是私服地址,所以相当于所有的请求都会走私服了
http://central 这个配置相当于没有任何作用
将项目发布包部署到哪个仓库中,是需要用下面的pom.xml中的配置来设置的:
nexus-releases Nexus Release Repository http://localhost:8081/nexus/content/repositories/releases/ nexus-snapshots Nexus Snapshot Repository http://localhost:8081/nexus/content/repositories/snapshots/
nexus仓库对于普通的匿名用户是只读的,也就是说,只能下载依赖,不能部署发布包,因此如果要能够部署发布包,还需要在settings.xml文件里通过
元素配置使用专用的部署用户,来通过认证,进行发布包的部署。
//需要在settings中配置:
nexus-releases deployment deployment123 nexus-snapshots deployment deployment123
这里需要注意的是pom文件中 , repository中的id, 必须和server中的id一致, 这样需要权限的时候才能找到真正的权限
nexus-3rd-party deployment deployment123
mvn deploy:deploy -file -DgroupId=com.csource -DartifactId=fastdfs-client-java -Dversion=1.24 -Dpackaging=jar -Dfile=F:\DevelopmentKit\fastdfs_client_v1.24.jar -Durl=http://localhost:8081/repository/3rd-party/ -DrepositoryId=nexus-3rd-party
这里DrepositoryId 对应的是 server中的id