一、概述

有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:Apache基金会的Archiva、JFrog的Artifactory和Sonatype的Nexus。而Nexus是当前最流行的Maven仓库管理工具。
 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库。供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从远程仓库下载,缓存在私服上以后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家服务。

私服的工作原理容如下图所示:

二、安装nexus

环境说明

操作系统:centos 7.6

java版本:1.8.0_211

maven版本:3.6.3

docker版本:19.03.5

ip地址:192.168.31.183

拉取镜像

拉取最新版本,目前最新版本是3.20.1

  1. docker pull sonatype/nexus3

持久化目录

  1. mkdir -p /data/nexus/data
  2. chmod 777 -R /data/nexus/data

启动镜像

  1. docker run -d -p 8081:8081 --name nexus -v /data/nexus/data:/nexus-data sonatype/nexus3

查看日志

  1. docker logs -f nexus

输出:

  1. ...
  2. 2019-12-26 08:06:12,134+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@42da9de6{HTTP/1.1,[http/1.1]}{0.0.0.0:8081}
  3. 2019-12-26 08:06:12,135+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @102936ms
  4. 2019-12-26 08:06:12,137+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer -
  5. -------------------------------------------------
  6. Started Sonatype Nexus OSS 3.20.1-01
  7. -------------------------------------------------

等待几分钟时间,出现 Started Sonatype Nexus OSS 表示启动好了。

三、访问nexus

打开浏览器,访问 http://192.168.31.183:8081/

点击右侧的登录

查看管理员admin密码

  1. # cat /data/nexus/data/admin.password

登录

开始设置

修改密码

确认配置

四、添加阿里云maven代理

点击settings->Repository->Repositories

点击Create repositoty按钮

选择maven2 (proxy)

填写如下两个字段,分别是代理库的名称,所代理的上层库的url。阿里云url为:http://maven.aliyun.com/nexus/content/groups/public/

滚动到页面最下方,点击“Create repositoty”按钮。

可以看到刚刚新建的代理库已经存在了。

重新配置maven-public组,使其包含新建的aliyun-maven。在如上页面,点击maven-public,进入到配置页面。按下图进行修改。把aliyun-maven移至右侧,并向上移至第一位。然后点击保存。

点击左侧菜单Repositoty>Repositories,进入到仓库列表页面,点击maven-public一行的copy按钮,然后复制弹出的url,后面配置maven时需要使用。

四、配置maven

修改配置文件

  1. cd /data/apache-maven-3.6.3/conf
  2. cp settings.xml settings.xml.bak
  3. vim settings.xml

添加服务器认证信息,增加红色部分内容

  1. <!-- Another sample, using keys to authenticate.
  2. <server>
  3. <id>siteServer</id>
  4. <privateKey>/path/to/private/key</privateKey>
  5. <passphrase>optional; leave empty if not used.</passphrase>
  6. </server>
  7. -->
  8. <server>
  9. <id>maven-releases</id>
  10. <username>admin</username>
  11. <password>abcd1234</password>
  12. </server>
  13. <server>
  14. <id>maven-public</id>
  15. <username>admin</username>
  16. <password>abcd1234</password>
  17. </server>
  18. </servers>

注意:修改为自己设置的密码。

增加mirrors

  1. <mirror>
  2. <id>mirrorId</id>
  3. <mirrorOf>repositoryId</mirrorOf>
  4. <name>Human Readable Name for this Mirror.</name>
  5. <url>http://my.repository.com/repo/path</url>
  6. </mirror>
  7. -->
  8. <mirror>
  9. <id>maven-public</id>
  10. <name>maven-public</name>
  11. <url>http://192.168.31.183:8081/repository/maven-public/</url>
  12. <mirrorOf>*</mirrorOf>
  13. </mirror>
  14. </mirrors>

注意:修改ip地址为服务器ip

五、测试nexus私服

下载一个SpringBootDemo,进行打包测试。

  1. yum install -y git
  2. git clone https://github.com/solochen84/SpringBootDemo.git

使用mvn命令打包

  1. # cd SpringBootDemo/
  2. # mvn clean install
  3. [INFO] Scanning for projects...
  4. Downloading from maven-public: http://192.168.31.183:8081/repository/maven-public/org/springframework/boot/spring-boot-starter-parent/1.5.4.RELEASE/spring-boot-starter-parent-1.5.4.RELEASE.pom
  5. Downloaded from maven-public: http://192.168.31.183:8081/repository/maven-public/org/springframework/boot/spring-boot-starter-parent/1.5.4.RELEASE/spring-boot-starter-parent-1.5.4.RELEASE.pom (7.5 kB at 7.6 kB/s)
  6. Downloading from maven-public: http://192.168.31.183:8081/repository/maven-public/org/springframework/boot/spring-boot-dependencies/1.5.4.RELEASE/spring-boot-dependencies-1.5.4.RELEASE.pom
  7. Downloaded from maven-public: http://192.168.31.183:8081/repository/maven-public/org/springframework/boot/spring-boot-dependencies/1.5.4.RELEASE/spring-boot-dependencies-1.5.4.RELEASE.pom (93 kB at 187 kB/s)
  8. Downloading from maven-public: http://192.168.31.183:8081/repository/maven-public/com/fasterxml/jackson/jackson-bom/2.8.8/jackson-bom-2.8.8.pom
  9. ...
  10. [INFO] Installing /root/SpringBootDemo/pom.xml to /root/.m2/repository/com/example/spring-boot-demo/0.0.1-SNAPSHOT/spring-boot-demo-0.0.1-SNAPSHOT.pom
  11. [INFO] ------------------------------------------------------------------------
  12. [INFO] BUILD SUCCESS
  13. [INFO] ------------------------------------------------------------------------
  14. [INFO] Total time: 04:13 min
  15. [INFO] Finished at: 2019-12-30T20:15:26+08:00
  16. [INFO] ------------------------------------------------------------------------

如果有输出:http://192.168.31.183:8081/repository/maven-public,说明正在使用 nexus私服

最后提示:BUILD SUCCESS,表示构建完成。

构建完成后,它会自动创建一个target目录,这里面存放jar包

  1. # ls -l target/
  2. 总用量 14824
  3. drwxr-xr-x 3 root root 40 12 30 20:13 classes
  4. drwxr-xr-x 3 root root 25 12 30 20:13 generated-sources
  5. drwxr-xr-x 3 root root 30 12 30 20:13 generated-test-sources
  6. drwxr-xr-x 2 root root 28 12 30 20:14 maven-archiver
  7. drwxr-xr-x 3 root root 35 12 30 20:13 maven-status
  8. -rw-r--r-- 1 root root 15170293 12 30 20:15 spring-boot-demo-0.0.1-SNAPSHOT.jar
  9. -rw-r--r-- 1 root root 6517 12 30 20:14 spring-boot-demo-0.0.1-SNAPSHOT.jar.original
  10. drwxr-xr-x 2 root root 129 12 30 20:13 surefire-reports
  11. drwxr-xr-x 3 root root 17 12 30 20:13 test-classes

启动jar包

  1. # java -jar target/spring-boot-demo-0.0.1-SNAPSHOT.jar
  2.  
  3. . ____ _ __ _ _
  4. /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
  5. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  6. \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  7. ' |____| .__|_| |_|_| |_\__, | / / / /
  8. =========|_|==============|___/=/_/_/_/
  9. :: Spring Boot :: (v1.5.4.RELEASE)
  10. ...
  11. 2019-12-30 20:18:39.923 INFO 23047 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
  12. 2019-12-30 20:18:40.065 INFO 23047 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
  13. 2019-12-30 20:18:40.077 INFO 23047 --- [ main] c.e.demo.SpringBootDemoApplication : Started SpringBootDemoApplication in 8.484 seconds (JVM running for 9.609)

访问页面

  1. http://192.168.31.183:8080/

效果如下:

如果有第三方的sdk,阿里云maven没有时,可以上传到nexus私服。

回到首页,点击Upload,上传到 maven-relaases,Extension会自动填充

需要提供 Group ID,Atriface ID,Version。这个问java开发要一个。

但是,还是推荐将 第三方sdk嵌入到java项目里面,不使用nexus私服下载。如果一但nexus私服挂掉了,就很麻烦了。

nexus私服还是去阿里云maven下载比较好。

本文参考链接:

https://www.cnblogs.com/wotoufahaiduo/p/11223834.html
https://blog.csdn.net/lk142500/article/details/91357441
https://www.cnblogs.com/sybblogs/p/9835977.html

https://www.jianshu.com/p/e8e3ba719785

Docker 搭建nexus私服的更多相关文章

  1. 用Docker搭建Nexus私服

    搜索Nexus 在docker容器中加载Nexus镜像 发布本地项目到Nexus私服 配置连接方式 发布指令 打源码包上传插件 搜索Nexus   在我们打算使用Nexus时,我们先搜索一下docke ...

  2. Linux Centos7 基于Docker 搭建 Nexus私服搭建

    创建Blob Stores[本地文件存储目录,统一管理] 1.设置名称和工作路径: ps[注意事项]: 1.storage name:自定义名称 2.storage path:存储路径,默认[/nex ...

  3. Linux_Centos中搭建nexus私服

    1.在Linux下搭建Nexus私服 1).下载并且解压      下载  nexus-2.11.2-03-bundle.zip      unzip nexus-2.11.2-03-bundle.z ...

  4. Linux 安装配置maven3.0 以及搭建nexus私服

    http://carvin.iteye.com/blog/785365 一.软件准备 1.apache-maven-3.0-bin.tar.gz 下载地址:http://www.apache.org/ ...

  5. 搭建nexus私服(maven)

    这里提供nexus的直接下载页面的链接: https://www.sonatype.com/download-oss-sonatype maven获取依赖jar包是从中央仓库获取,但很莫名的出现jar ...

  6. Linux安装配置maven以及搭建nexus私服(编写启动脚本)

    2011年07月12日16:32  下面介绍在Linux操作系统下安装配置maven和搭建nexus私服. 一.安装前的准备 下载 jdk http://www.oracle.com/technetw ...

  7. 搭建nexus私服,无法下载相关jar包,报错Repository proxy-mode is BLOCKED_AUTO

    在搭建nexus私服的时候,之前没直接用来下载maven的相关插件jar包,一直可以使用, 结果今天要编译hadoop的时候,在linux上新用maven就报错了,无法下载maven的相关插件(如下) ...

  8. 【原创】Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题

    [原创-转载请说明出处] 博主最近在虚拟机中搭建Maven私服,遇到了一个关键问题就是nexus 3.17版本后初始密码不是admin/admin123. 对于nexus不熟悉的我弄了很长时间!!!心 ...

  9. 基于Docker搭建Maven私服Nexus,Nexus详解

    备注:首先在linux环境安装Java环境和Docker,私服需要的服务器性能和硬盘存储要高一点,内存不足可能到时启动失败,这里以4核8GLinux服务器做演示 一:基于Docker安装nexus3 ...

随机推荐

  1. CF-1328 E. Tree Queries

    E. Tree Queries 题目链接 题意 给定一个树,每次询问一组点,问是否存在一条从根到某点的路径,使得该组点到该路径的最短距离不超过1 分析 从根到达某点的路径,如果覆盖到了某个点,那么一定 ...

  2. HDU - 3613 Best Reward(manacher或拓展kmp)

    传送门:HDU - 3613 题意:给出26个字母的价值,然后给你一个字符串,把它分成两个字符串,字符串是回文串才算价值,求价值最大是多少. 题解:这个题可以用马拉车,也可以用拓展kmp. ①Mana ...

  3. codeforces Looksery Cup 2015 C. The Game Of Parity

    There are n cities in Westeros. The i-th city is inhabited by ai people. Daenerys and Stannis play t ...

  4. Educational Codeforces Round 94 (Rated for Div. 2) C. Binary String Reconstruction (构造)

    题意:给你一个字符串\(s\),原字符串为\(w\),如果\(i>x\)且\(w_{i-x}=1\),那么\(s_{i}=1\),如果\(i+x\le n\)且\(w_{i+x}=1\),那么\ ...

  5. C# TCP应用编程一 概述

    TCP 是Transmission Control Protocol(传输控制协议)的简称,是TCP/IP 体系中面向连接的运输层协议,在网络中提供全双工的和可靠的服务.一旦通信双方建立了TCP 连接 ...

  6. WSL ubuntu重置密码

    1. 在powershell中切换到root: 2. 进入ubuntu: 3. 修改制定用户的密码: 4. 切换回默认的用户:

  7. 洛谷 P4143 采集矿石 后缀数组

    题目背景 ZRQ 成功从坍塌的洞穴中逃了出来.终于,他看到了要研究的矿石.他想挑一些带回去完成任务. 题目来源:Zhang_RQ哦对了 \(ZRQ\) 就他,嗯 题目描述 ZRQ 发现这里有 \(N\ ...

  8. MySQL 主从复制(下)

    延时复制 因为延时复制主从数据同一时间不一致, 所以延时从库一般只能做备份,不提供任何对外服务 配置延时复制(已经有主从) 1.停止主从 mysql> stop slave; Query OK, ...

  9. vector最最最基础用法(非原创)

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...

  10. C# wpf window

    使用vs2017 新建wpf 项目 MainWindow 被定义为partial,是因为他要和xaml的一些属性组合在一起,然后再运行起来,这正是 InitailizeCompoent 这个函数要干的 ...