首页 > 编程语言 >Java私有仓库Nexus搭建(喂奶式教程)

Java私有仓库Nexus搭建(喂奶式教程)

时间:2024-07-04 16:30:32浏览次数:25  
标签:nexus Java Nexus jar 私服 maven 仓库 喂奶

  1.为什么需要搭建私有仓库?

1. 有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。而且自己maven私服更容易维护,由于在内网,公司的开发人员从maven私服迁出iar到本地仓库更快。
2. 当需要上传第三方或者自己的jar到maven仓库时,就需要私服了。

2.如何部署和使用?

操作系统:Ubuntu18(虚拟机和云服务器均可)
Maven版本:apache-maven-3.6.0(下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.0/
binaries/)。

Nexus版本:nexus-3.58.0(下载地址:https://www.sonatype.com/products/sonatype-nexus-oss-download)

2.1.配置Maven

将下载好的maven和nexus上传到服务器上(建议软件都安装在/usr/local目录下),下面解压maven

tar -zxvf apache-maven-3.6.0-bin.tar.gz

配置环境变量

vim /etc/profile

然后在最末尾处加上

# maven
MAVEN HOME=/usr/local/apache-maven-3.6.0
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

然后再使用下面命令使配置生效

source /etc/profile

查看是否生效

mvn -v

2.2.部署Nexus

解压Nexus

tar -zxvf nexus-3.58.0-04-unix.tar.gz

启动

cd /usr/local/nexus-3.58.0-04/bin
./nexus start

默认端口: 8081
默认账号密码: admin/admin123

2.2.1.修改默认端口

新版本的Nexus的配置文件是在Nexus根目录的 /etc 下的 nexus-default.properties 要修改Nexus的端口,就修改配置文件中的 application-port然后重启Nexus服务。

3.Nexus简单功能介绍

3.1.搜索功能

这个就是类似Maven仓库上的搜索功能,就是从私服上查找是否有哪些包。

注意:在Search这级是支持模糊搜索的

3.2.浏览

3.3.上传

顾名思义就是上传jar包到私服中,可以选择其中一个hosted仓库,通过页面直接上传的方式只是上传了jar包,若这个jar过Maven依赖了其他jar,那其他项月在下载这个jar无法取得它的依赖。所以,除非这个jar没有任何依赖,否则还是推荐通过命令行或者IDE的方式上传jar包,这样才会把pom一并上传

3.4.服务器管理和配置

看到这是要进行登录的,在右上角点击“Sign In”的登录按钮,输入admin/admin123,登录成功之后,即可看到此功能,如图所示:

3.5.仓库

3.5.1. Blob Stores

3.5.2.Repositories

仓库分为三种:Proxy、hosted、group

3.5.2.1.Proxy

这里就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地这样的优势只要其中一个人从中央库下来了,以后大家都是从Nexus私服上进行下来,私服一般部署在内网,这样大大节约的宽带。创建Proxy的具体步骤:
1.点击左上角的“Create Repositories”按钮
2.选择要创建的类型
3.填写详细信息
Name:就是为代理起个名字,我取名为“aliyun"Remote storage: 代理的地址,Maven的地址为:htps:/repo1.maven.rg/maven2/,但Maven官方的代理访问速度太慢了,使用阿里云的Maven代理更好,http://maven.aliyun.com/nexus/content/groups/public Blob Store:选择代理下载包的存放路径,我选择的是之前创建的一个。

3.5.3.Hosted

Hosted是宿主机的意思,用于将第三方的Jar或者我们自己的iar放到私服上。Hosted有三种方式,Releases、SNAPSHOT、Mixed
Releases:一般是已经发布的Jar包
·Snapshot:未发布的版本
·Mixed:混合的
Hosted的创建和Proxy)类似,类型需选择maven2(hosted)。注意:Deployment Polcy,我们需要把策略改成"Alowredeploy”,以允许重复发布爱盖同版本的jar包。

3.5.4.Group

能把多个仓库合成一个仓库来使用,把上几步创建的代理仓库和宿主仓库都加入到“maven-public”仓库组中:

3.5.5.Security

包含用户、角色、权限的配置。

3.5.6.Support

包含日志及数据分析

3.5.7.System

包含API(Nexus这个API文档貌似是用swagger做的)、邮件服务器,设置调度任务等。


4.Maven结合Nexus配置私有仓库

4.1.配置Maven的settings.xml

在idea、eclipse等IDE中配置好maven的settings文件路径后,在mirrors标签中增加一个mirror

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://你的IP:你的端口/repository/aliyun/ </ur1>
</mirror>

url中填入之前在Nexus中自己创建的代理中央仓库

4.2.配置项目中的pom.xml

在pom文件中增加一个repository,注意id和name需和代理中央仓库的Name一致

<repositories>
    <repository>
        <id>aliyun</id>
        <name>aliyun</name>
        <url>http://192.168.2.109:8888/repository/aliyun/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

上面的配置方法选择其中一种即可。
如此一来,项目在下载jar包时会从私服的代理中央仓库中获取,如果代理仓库没有该jar,就会去代理仓库配置的远程仓库中下载到私服中,再从私服下载到项目本地

标签:nexus,Java,Nexus,jar,私服,maven,仓库,喂奶
From: https://blog.csdn.net/WXY888888888/article/details/140178348

相关文章

  • Java流程控制
    一、顺序结构顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构。二、选择结构if单选择结构(if)packagestruct;​importjava.util.Scanner;​publicclassDemo01{  publicstaticvoidmain(String[]args){    Scannerscann......
  • java使用Netty实现TCP收发消息的例子,多线程并且含断线自动重连
    需求:有一个TCP的服务,需要使用Netty开发一个TCP连接并收发消息的程序。要求多线程并且含断线自动重连能力。组织结构,使用JavaMaven编程方式功能还包含读取配置文件和log4j2写日志部分 完整代码:App.javapackagecom.LSpbxServer;importorg.slf4j.Logger;import......
  • java 事件回调的写法,使用回调接口方式
    java编写时,尤其是先用C#语言后转成java的,在编程时一定会遇到,java中没有委托事件的概念。那主类App.java类中实例了一个A对象,那A对象因为某种原因触发了一个事件,想回调App.java中的一个函数,应该怎么写呢?在java中有多有方法来实现,这里讲下回调接口方式,我感觉这种方式比较好理解......
  • java第三十课 —— 面向对象练习题
    面向对象编程练习题第一题定义一个Person类{name,age,job},初始化Person对象数组,有3个person对象,并按照age从大到小进行排序,提示,使用冒泡排序。packagecom.hspedu.homework;importjava.util.SortedMap;publicclassHomework01{publicstaticvo......
  • 2024最新Java笔试题及答案,java高分面试指南
    一、mybatis:1、当实体类中的属性名和表中的字段名不一样,怎么办1、使用as关键字起别名​<sqlid="Base_Column_List"><!--数据库种表的字段as实体类属性-->uidasid,userNameasname,ageasage,emailasemail,create_timeascreateTime,update_timeas......
  • 基于java+springboot+vue实现的校园外卖服务系统(文末源码+Lw)292
    摘   要传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,外卖信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的校园外卖服务系统。本......
  • JavaWeb—JDBC篇
    概述jdbc是javaWeb的技术框架定义JDBC(JavaDatabaseConnectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。作用......
  • 基于java+springboot+vue实现的宠物商城网站(文末源码+Lw)273
    摘   要传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,商品信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的宠物商城网站。本宠物......
  • 面试官:Java类是如何被加载到内存中的?
    面试连环callJava类是如何被加载到内存中的?Java类的生命周期都有哪些阶段?JVM加载的class文件都有哪些来源?JVM在加载class文件时,何时判断class文件的格式是否符合要求?类生命周期一个类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期将会经历加载、验证、准备、......
  • Java中的文件IO
    文件,我们之前在C语言中接触过,是在硬盘上存储数据的方式,操作系统帮我们把硬盘的一些细节都封装起来了,因此在这里我们只需要了解文件的相关接口即可.首先硬盘是用来存储数据的,和内存相比,硬盘的存储空间更大,访问速度更慢,成本更低,可以实现持久化存储,而操作系统通过"文......