Maven使⽤教程⼆:nexus私服搭建及使⽤
nexus安装
从下载最新的安装包
1.打开命令⾏,切换到nexus-3.
2.1-01/bin⽬录下,回车。例:C:\Nexus\nexus-
3.2.1-01\bin
2.输⼊:/run,并回车
3.执⾏后出现以下信息表⽰安装成功:
4.打开浏览器,输⼊:localhost:8081,完成
可以修改nexus的⼀些配置,有两个配置⽂件,⼀个是在bin⽬录下⾯的nexus.vmoptions,另外⼀个是etc⽬录下⾯的nexus-default.properties,⾥⾯可以修改端⼝号(默认是8081)
nexus默认的管理员账号为:admin/admin123
nexus中的各种仓库
⾸先看下这个nexus图,因为公司安装的是2.x所以这个界⾯也是⽼版的界⾯截图:
这⾥看下type,现在来说下nexus四种仓库类型:
hosted :宿主仓库,这个仓库,是⽤来把公司内部的发布包部署到这个仓库⾥⾯来,然后公司内的其他⼈就可以从这个宿主仓库⾥去下载依赖使⽤
proxy:代理仓库,这个仓库不是⽤来给公司内部的发布部署的,是代理了公司外部的各种仓库,例如java,codehaus,jboss等等,最重要就是它代理了公司外部的中央仓库,但是这⾥也可以修改nexus连接为阿⾥云镜像仓库,阿⾥云去连接中央仓库。
group:仓库组,其实就是将各种宿主仓库、代理仓库全部组成⼀个虚拟的仓库组,然后我们的项⽬只要配置依赖⼀个仓库组,相当于就是可以⾃动连接仓库组对应的各种仓库。
3rd party:该仓库是个宿主仓库,主要⽤来部署没法从公共仓库获取的第三⽅依赖包。
virtual:虚拟仓库
最后还有仓库的状态和路径:
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仓库都在这个仓库组内
nexus仓库架构
将maven-central 代理仓库修改为阿⾥云仓库:
结合镜像将公司项⽬配置为强制从nexus私服下载
我们已经有了私服,下⼀步就是要将公司中的项⽬配置为强制从公司内的私服来下载,不允许⾛外⽹,这样就可以统⼀收⼝管理。本⾝nexus私服也是代理了各种中央仓库,直接⽤nexus私服就可以了。
通常会在l配置⽂件中,为当前机器统⼀配置使⽤的私服仓库地址,⽽且⼀般都是直接⽤私服中的仓库组,在l中使⽤profiles即可
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>localhost:8081/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Plugin Repository</name>
<url>localhost:8081/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
nexus权限管理&账号创建
我们进⾏团队项⽬开发时,常常⾃⼰写的jar包需要被别的团队依赖,那么如何将我们写好的代码,清理/编译/测试/打包/部署到私服上去呢?
nexus的权限是典型的RBAC模型,role-based access control,每个⽤户可以分配多个⾓⾊,每个⾓⾊分配多个全新啊,每个权限就是⼀个具体的功能。
nexus默认有三个⽤户:
amdin:管理员账号,密码是admin123
deployment:可以搜索和部署构建,就是普通的开发账号,密码是deployment123(在nexus 3.x最新版本已经被消除了)
anonymout:如果没有给认证信息,就是个匿名⽤户,可以下载依赖,查看依赖
可以在Users页⾯添加⽤户,管理⽤户,还可以针对⽤户的role tree进⾏⾓⾊的分配。
将开发好的模块部署到nexus上maven打包本地jar包
1.发布仓库配置
将项⽬发布包部署到哪个仓库中,是需要⽤下⾯的l中的配置来设置的
<distributionManagement>
<repository>
<id> nexus-releases</id>
<name> Nexus Release Repository</name>
<url>localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id> nexus-snapshots</id>
<name> Nexus Snapshot Repository</name>
<url>localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
2.部署专⽤的账号配置
但是nexus仓库对于普通的匿名⽤户是只读的,也就是说,只能下载依赖,不能部署发布包,因此如果要能够部署发布包,还需要在l⽂件⾥通过元素配置使⽤专⽤的部署⽤户,来通过认证,进⾏发布包的部署。
需要在settings中配置:
<servers>
<server>
<id>nexus-releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
3.执⾏mvn deploy命令部署到私服
执⾏mvn clean deploy命令,就可以让maven⾃动给我们编译源代码、运⾏单元测试、打成jar包、将jar包安装到本地仓库、将Jar包部署到配置的远程私服仓库⾥⾯去
4.mvn命令说明
mvn clean package:清理、编译、测试、打包
mvn clean install:清理、编译、测试、打包、安装到本地仓库,⽐如你⾃⼰负责了3个⼯程的开发,互相之间有依赖,那么如果你开发好其中⼀个⼯程,需要在另外⼀个⼯程中引⽤它,此时就需要将开
发好的⼯程jar包安装到本地仓库,然后才可以在另外⼀个⼯程声明对它的依赖,此时会直接取⽤本地仓库中的jar包
mvn clean deploy:清理、编译、测试、打包、安装到本地仓库、部署到远程私服仓库,这个其实就是你负责的⼯程写好了部分代码,别⼈需要依赖你的jar包中提供的接⼝来写代码和测试。此时你需要将snapshot jar包发布到私服的maven-snapshots仓库中。供别⼈在本地声明对你的依赖和使⽤。
5.对于极其少数的jar包⼿动上传
新版本⾥⾯,其实主要是建议⽤命令⾏⼿动上传的⽅式,就不⽤界⾯上上传的⽅式了:
<server>
<id>nexus-3rd-party</id>
<username>deployment</username>
<password>deployment123</password>
</server>
执⾏mvn命令:
men deploy:deploy-file -DgroupId=com.csource -DartifactId=fastdfs-client-java -Dversion=1.24 -Dpackaging=jar -Dfile=F:\DevelopmentKit\fastdfs_client_v1.24.jar -Durl=localhost:8081/repository/3rd-party/ -Dre positoryId=nexus-3rd-party
感兴趣的⼩伙伴可关注个⼈:壹枝花算不算浪漫

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。