Maven私服-Nexus3安装与使用

写在前面
安装简单,此博客主要是为了记录下怎么使用,以及一些概念性的东西

安装+配置

下载

下载对应版本(科学上网)
https://help.sonatype.com/en/download-archives—repository-manager-3.html

设置端口

/etc/nexus-default.properties
修改端口号
在这里插入图片描述

启动

进入/bin目录执行nexus 命令(./nexus run)

./nexus stop 关闭
./nexus run 开启
./nexus {start|stop|run|run-redirect|status|restart|force-reload}

登录

首次登录他会告诉你初始密码是在哪个目录下(我的是nexus-3.70.3-01如果你是旧版本 账户密码分别是admin admin123)
在这里插入图片描述

修改默认代理仓库

修改为https://maven.aliyun.com/repository/public
在这里插入图片描述

使用

默认仓库介绍

1)maven-central:maven中央库,默认https://repo1.maven.org/maven2/拉取jar

2)maven-releases:私库发行版jar

3)maven-snapshots私库快照(调试版本)jar

4)maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

仓库类型

1)group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;

2)hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);

3)proxy(代理类型): 从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径);

4)virtual(虚拟类型): 虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用)

版本策略

Release: 正式版本
Snapshot: 快照版本
Mixed: 混合模式

部署策略

‌Allow Redeploy‌:允许重新部署应用程序。开发人员可以对应用程序进行修改、更改配置或更新代码,并将这些更改重新部署到运行中的应用程序中。
‌使用场景‌:通常用于开发和测试环境,以便验证和应用修改的效果。
‌Disable Redeploy‌:禁用重新部署功能,阻止在应用程序运行时修改代码或更改配置。
‌使用场景‌:主要用于生产环境,以确保系统的稳定性和安全性,防止运行时修改可能导致的问题。

‌Deploy by Replication Only‌:仅通过复制机制进行部署。多个节点具有相同的应用程序代码、配置和数据副本,每个节点都可以独立地提供服务。当一个节点失效时,其他节点可以接管其功能,确保系统的可用性和稳定性。
‌使用场景‌:适用于需要高可用性和负载均衡的环境,确保系统的稳定运行。

‌ReadOnly‌:只读模式。在这种模式下,仓库中的构件只能被读取,不能进行上传或更新操作。这种策略适用于需要保护现有构件不被修改的场景。
使用场景‌:适用于只读场景,如提供公共库的访问,确保数据不被篡改。

访问规则

在这里插入图片描述

新建仓库

这里我打算新建一个宿主仓库thirdparty,然后将其分组到默认的public分组中
在这里插入图片描述

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

在这里插入图片描述

代码相关的配置

setting文件

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
			http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- offline
   | 当没有网络,只有本地库,又是用maven来管理项目,在编译或者下载第三方Jar的时候,老是去中央仓库上自动下载jar,
   | 但实际本地已存在这些jar,导致出问题, 那么就可以试下使用离线模式
   |
   | 默认值: false
  <offline>false</offline>
  -->
    <pluginGroups>
    </pluginGroups>

    <proxies>
    </proxies>

    <servers>
        <!--配置nexus仓库认证信息-->
        <server>
            <id>lylpb-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>lylpb-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
 	  <server>
            <id>lylpb-nexus</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>

    <mirrors>
        <!-- 所有maven下载都通过本地nexus私服 -->
        <mirror>
            <id>lylpb-nexus</id>
            <name>local nexus maven</name>
            <mirrorOf>*</mirrorOf>
            <url>http://192.168.150.129:10081/repository/maven-public/</url>
        </mirror>
    </mirrors>

    <profiles>

      <profile>
         <id>lylpb-nexus</id>
	    <!-- 远程仓库 -->
         <repositories>
          <repository>
            <id>nexus</id>
            <name>Nexus Repository</name>
		<!-- 虚拟的URL形式,指向镜像的URL-->
            <url>http://192.168.150.129:10081/repository/maven-public/</url>
            <layout>default</layout>
		<!-- 表示可以从这个仓库下载snapshot版本的构件 -->   
            <snapshots>
              <enabled>true</enabled>
            </snapshots>
	      <!-- 表示可以从这个仓库下载releases版本的构件--> 
           <releases>
              <enabled>true</enabled>
            </releases>
          </repository>
        </repositories>
		
	  <!-- 插件仓库列表 -->
        <pluginRepositories>
          <pluginRepository>
              <id>lylpb-nexus</id>
              <name>Nexus Repository</name>
              <url>http://192.168.150.129:10081/repository/maven-public/</url>
              <layout>default</layout>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
              <releases>
                <enabled>true</enabled>
              </releases>
          </pluginRepository>
        </pluginRepositories>
      </profile>

    </profiles>

     <!-- 激活的环境 -->
    <activeProfiles>
      <activeProfile>lylpb-nexus</activeProfile>
    </activeProfiles>
</settings>

项目中的自动化部署(distributionManagement配置)

pom文件中加入distributionManagement,id与setting配置文件的id保持匹配

    <distributionManagement>
        <snapshotRepository>
            <id>lylpb-snapshots</id>
            <name>snapshots</name>
            <url>http://192.168.150.129:10081/repository/maven-snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>lylpb-releases</id>
            <name>releases</name>
            <url>http://192.168.150.129:10081/repository/maven-releases/</url>
        </repository>
    </distributionManagement>

上传第三方jar包到私服

mvn deploy:deploy-file --settings settings-my.xml -DgroupId=com.infiniteautomation2 -DartifactId=modbus4j -Dversion=3.1.0 -Dpackaging=jar -Dfile=modbus4j-3.1.0.jar -Durl=http://192.168.150.129:10081/repository/thirdparty/ -DrepositoryId=lylpb-nexus

-DrepositoryId 参数用于指定 Maven 部署文件时所使用的仓库 ID。这个仓库 ID 必须在你的 settings.xml 文件中定义,以便 Maven 知道如何认证和连接到该仓库。
–settings 配置文件地址改成自己的文件地址

执行完成后能找到对应的包 并在指定仓库中
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值