前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Nexus搭建Maven私服

使用Nexus搭建Maven私服

作者头像
程裕强
发布2020-02-14 17:11:40
3.2K0
发布2020-02-14 17:11:40
举报

1、下载安装Nexus

(1)下载 (2)解压缩

代码语言:javascript
复制
[root@node app]# tar -zxvf nexus-3.20.1-01-unix.tar.gz

解压缩得到两个文件夹:nexus-3.20.1-01、sonatype-work。 nexus-3.20.1-01是安装目录,包含了nexus应用程序,和所有运行nexus需要的依赖组件。 sonatype-work是数据目录,包含了nexus管理的所有存储库、组件和其他数据。 (3)启动

代码语言:javascript
复制
[root@node nexus-3.20.1-01]# bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************
Starting nexus
[root@node nexus-3.20.1-01]# bin/nexus status
WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************
nexus is running.
[root@node nexus-3.20.1-01]#

2、Nexus首次登录

(1)登录 通过浏览器打开对应的页面 http://ip:8081/

在这里插入图片描述
在这里插入图片描述

(2)通过提示,查找admin的密码

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[root@node nexus-3.20.1-01]# cat /tpdata/sonatype-work/nexus3/admin.password
25a0febf-f347-466c-a43a-9bbaf86863ef

(3)按照提示修改密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)确认匿名访问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、Nexus基本设置

(1)新建库repositoty 左侧菜单Repository>Repositories

  • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
  • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
  • group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
在这里插入图片描述
在这里插入图片描述

(2)选择maven2(proxy)

在这里插入图片描述
在这里插入图片描述

(3)录入名称和URL

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

(5)查询新建的库 左侧菜单Repository>Repositories,可以看到新建的maven-aliyun库

在这里插入图片描述
在这里插入图片描述

(6)配置maven-public组 重新配置maven-public组,使其包含新建的aliyun-maven

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(6)负责maven-public组地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、客户端Maven配置

(1)查看Idea的Maven配置文件

在这里插入图片描述
在这里插入图片描述

(2)编辑settings.xml文件

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	<mirror>
      <id>nexusMaven</id>
      <name>nexus maven</name>
      <url>http://10.17.xx.xxx:8081/repository/maven-public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
	
  </mirrors>

(3)说明 maven配置私服下载有两种方式

  • setting.xml:该文件配置的是全局模式
  • pom.xml:该文件的配置的是项目独享模式

本文配置的全局模式。

5、验证从Maven私服下载Jar

(1)新建一个Maven项目 (2)构建项目 单击右下方进度条,展开后可以看到构建细节,发现本项目已经从刚才配置的Maven私服下载依赖的Jar包。

在这里插入图片描述
在这里插入图片描述

(3)查看Maven私服中maven-public组已经下载的Jar

http://ip:8081/service/rest/repository/browse/maven-public/

在这里插入图片描述
在这里插入图片描述

6、上传本地jar到Nexus仓库

(1)Nexus本地仓库介绍

  • Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.
  • Snapshots:这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.

(2)配置setting.xml Nexus的仓库对于匿名用户是只读的。为了能够部署构件,还需要在setting.xml中的servers配置认证信息。

代码语言:javascript
复制
<server>
        <id>nexus_release</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>nexus_snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>

(3)配置pom.xml 配置自动部署构件 在pom.xml 中的 project 内添加自动部署构件配置

代码语言:javascript
复制
   <distributionManagement>
       <repository>
           <id>maven-releases</id>
           <name>Nexus Release Repository</name>
           <url>http://IP:8081/repository/maven-releases/</url>
       </repository>
       <snapshotRepository>
           <id>maven-snapshots</id>
           <name>Nexus Snapshot Repository</name>
           <url>http://IP:8081/repository/maven-snapshots/</url>
       </snapshotRepository>
   </distributionManagement>

(4)编写测试类

代码语言:javascript
复制
package com.example.demonexus.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String getMessage(){
        return "Hello,World!";
    }
}

(5)发布

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ demo-nexus ---
[INFO] Building jar: D:\IdeaProjects\demo-nexus\target\demo-nexus-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.2.4.RELEASE:repackage (repackage) @ demo-nexus ---
[INFO] Replacing main artifact with repackaged archive
[INFO] 
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ demo-nexus ---
[INFO] Installing D:\IdeaProjects\demo-nexus\target\demo-nexus-0.0.1-SNAPSHOT.jar to D:\Users\chengyq\.m2\repository\com\example\demo-nexus\0.0.1-SNAPSHOT\demo-nexus-0.0.1-SNAPSHOT.jar
[INFO] Installing D:\IdeaProjects\demo-nexus\pom.xml to D:\Users\chengyq\.m2\repository\com\example\demo-nexus\0.0.1-SNAPSHOT\demo-nexus-0.0.1-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ demo-nexus ---
Downloading from maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/maven-metadata.xml
Uploading to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/demo-nexus-0.0.1-20200121.073808-1.jar
Uploaded to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/demo-nexus-0.0.1-20200121.073808-1.jar (19 MB at 20 MB/s)
Uploading to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/demo-nexus-0.0.1-20200121.073808-1.pom
Uploaded to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/demo-nexus-0.0.1-20200121.073808-1.pom (2.3 kB at 40 kB/s)
Downloading from maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/maven-metadata.xml
Uploading to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/maven-metadata.xml
Uploaded to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/0.0.1-SNAPSHOT/maven-metadata.xml (771 B at 8.2 kB/s)
Uploading to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/maven-metadata.xml
Uploaded to maven-snapshots: http://10.17.12.160:8081/repository/maven-snapshots/com/example/demo-nexus/maven-metadata.xml (281 B at 5.6 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.930 s
[INFO] Finished at: 2020-01-21T15:38:09+08:00
[INFO] ------------------------------------------------------------------------

(6)查看发布的Jar包

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、下载安装Nexus
  • 2、Nexus首次登录
  • 3、Nexus基本设置
  • 4、客户端Maven配置
  • 5、验证从Maven私服下载Jar
  • 6、上传本地jar到Nexus仓库
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档