1、Nexus下载
下载地址:http://www.sonatype.org/nexus/go
2、Nexus启动
我下载的是zip包,解压后进入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根据操作系统类型选择文件夹,我选的是windows-x86-64文件夹,进入后可看到如下所示bat文件。
双击console-nexus.bat运行。游览器中输入http://localhost:8081/nexus/,出现如下图所示就代表nexus已经启动成功。8081为默认的端口号,要修改端口号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,修改application-port属性值就可以了。
默认的用户名和密码:admin/admin123,登录后如下图所示:
3、Nexus仓库
nexus的仓库类型分为以下四种:group(仓库组)、hosted(宿主)、 proxy(代理)、 virtual(虚拟)。首次登陆nexus后可以看到以下一个仓库组和多个仓库。MAVEN安装目录\sonatype-work\nexus\下的indexer文件夹下存放jar包坐标索引;\sonatype-work\nexus\storage\中central存储私服从中央仓库下载下的jar包。
group:仓库组:能合并多个hosted、proxy仓库,当你的项目希望引用连接(repository)多个资源(hosted、proxy仓库)时,就不需要多次引用了,只需要引用一个group仓库组即可。比如仓库组public Repositories可用于整合3rd party、central、releases、snapshots等仓库,后期用于私服上jar包下载。
hosted:宿主:本地仓库,通常我们会部署自己的构建(项目)到这一类仓库,以及把下载的jar包上传到hosted本地仓库。比如本地仓库releases一般存储项目发布版(deploy),本地仓库snapshots存放项目测试版,本地仓库3rd party一般用于上传jar包。
proxy:代理:通常被用来代理远程的公共仓库,如maven中央仓库或者https://repo1.maven.org/maven2/。当搭建的私服没有所需的资源,可以去Maven中央仓库或者其他仓库去下载。
virtual:虚拟
4、配置nexus
新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认用户名密码为admin/admin123。
点击左边Administration菜单下面的Repositories,找到右边仓库列表中的三个仓库Apache Snapshots和Central仓库,在下方点击configuration 在外网环境中一定记得将Download Remote Indexes 设为true,这样代理仓库才会下载索引;我们需要的正是这个索引。
在配置中还有个Remote Storage Location 是远程仓库的地址,可以根据需求自己添加,不过默认的repo1的仓库也已经差不多够用了。如果需要配置其他仓库,可以去搜索其他的仓库地址
配置好后点击保存,然后在Browse remote选项卡中点击刷新,如果能看见远程仓库的索引文件就代表配置成功了。
然后我们需要在外网将这个索引下载下来。需要右键central 选择update index或者Repari Index,然后会等待漫长的时间,等待索引文件下好。期间可以查看下载进度在左侧选项栏里面点击Administrator的Scheduled Tasks 。
索引文件非常大,经常在1~2G左右。而且会由于一些特殊原因下载不稳定。这时候我们可以去直接下载索引文件,然后拷贝解压到本地索引目录即可
http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties
http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.gz
这是下载地址,下载后将nexus仓库关闭,然后解压到索引目录即可。因为nexus启动后默认会在同级安装目录建设本地仓库,所以进入安装目录\sonatype-work进入indexer目录,因为我们的代理名为central所以找到central-ctx ,将下载好的文件解压进去后。重新启动nexus,若能在central 的browse index中看到和remote一样的索引,即代表成功完成。
具体步骤可以参考:https://blog.csdn.net/fn0723/article/details/81176489
到此外网的nexus代理仓库搭建基本完成,若要通过maven进行访问需要代理仓库地址。我们可以进入public repository中点击configuration 查看centural是否在左侧中,若没有就添加进去,然后将public仓库的地址拷贝出来,一般情况下是http://localhost:8081/nexus/content/groups/public/ 将这个地址配置进MAVEN中即可访问该代理仓库。
5、项目发布到私服(上传,需要账号和密码)
5.1 配置账号密码,这样maven就可以访问nexus服务器,传输或下载文件了。在maven安装目录下的settings.xml文件中配置(如D:\maven\apache-maven-3.3.9\conf\settings.xml)。 servers节点下配置nexus网站的用户名密码
releases
admin
admin123
snapshots
admin
admin123
5.2 配置POM项目中pom.xml文件,使项目发布到私服project节点下配置如下,其中仓库对应的id要和上面server中配置的id一致,url就是nexus网站中Repositories下releases和snapshots
releases
Internal Release
http://localhost:8081/nexus/content/repositories/releases/
snapshots
Internal Snapshots
http://localhost:8081/nexus/content/repositories/snapshots/
注意当前项目version的配置,如果想发布到releases仓库,就要配置成“版本号-release”;如果发布到snapshots仓库,就配置成“版本号-snapshot”,不区分大小写
执行maven的发布命令后就会发布到指定仓库:
mvn install -Dmaven.test.skip=true
可参考:https://blog.csdn.net/fn0723/article/details/81176765
6、从私服获取jar包
6.1 配置镜像,对指定路径进行拦截,默认maven访问中央,拦截后改为访问私服,在maven安装目录下的settings.xml文件中配置(如D:\maven\apache-maven-3.3.9\conf\settings.xml),在mirrors节点下配置
nexus
*
Human Readable Name for this Mirror.
http://localhost:8081/nexus/content/groups/public/
url配置成http://localhost:8081/nexus/content/groups/public/,这样获取jar包可以根据配置顺序优先级选择下载
6.2 settings.xml中配置profile,maven自定义配置,配置后如果使用需要激活, profiles节点下配置,注意profile下的id要和上面镜像的id一致,respositories和pluginRepositories要使用镜像中配置的。
nexus
central
http://repo1.maven.org/maven2/
true
true
central
http://repo1.maven.org/maven2/
true
true
6.3 settings.xml激活profile,settings节点下配置
nexus
参考资料:https://www.cnblogs.com/moonfly/p/6094897.html
https://www.cnblogs.com/hujiapeng/p/7127213.html
https://blog.csdn.net/azhegps/article/details/71436637
https://blog.csdn.net/caiwenfeng_for_23/article/details/44565595