Maven私服搭建Nexus3

第一部分:仓库部署

下载地址https://help.sonatype.com/en/download.html
备用下载链接,部分已经失效了

解压后会有两个文件夹:

nexus-3.20.1-01

sonatype-work

访问地址配置路径

\nexus-3.20.1-01\bin\nexus.vmoptions

shell 复制代码
-Xms128m
-Xmx512m
-XX:MaxDirectMemorySize=512m

默认配置大小为2703m,两个多G,内存不够的可以修改一下。

如果是docker部署修改配置没用,要加上-e参数进行配置亲测有效

shell 复制代码
# 核心配置
# -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"
docker run -d --name nexus3 -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" --hostname nexus -p 8081:8081 -v /www/dk_project/projects/nexus3/:/nexus-data sonatype/nexus3

访问地址配置路径

\nexus-3.20.1-01\etc\nexus-default.properties

shell 复制代码
application-port=8081
application-host=127.0.0.1

默认配置端口为8081,可以不做修改直接到 /nexus-3.20.1-01/bin 目录下找到nexus直接启动(我用mac实验的,使用命令./nexus启动,哪怕点了允许也一直报安全性问题,后来使用 ./nexus start 点了允许后提示安全问题,但是服务启动成功了),大约等待20秒就可以在浏览器上输入http://localhost:8081进入管理页面。

初始化账号 是admin
初始化密码 所在目录:\nexus-3.20.1-01\etc\sonatype-work\nexus3\admin.password

登录成功后会提示修改密码,然后询问是否允许匿名用户进行pubulic仓库访问,自行根据翻译和需求设定即可。

第二部分:仓库类型讲解

我们创建的是maven私服,所以这里只按照format为maven来举例。

根据format=maven2的一共有3中type类型。

如图:仓库类型和仓库格式是有不同分类的。

类型 作用
porxy 远程仓库代理,可以下载到所代理的仓库的依赖,比如配置阿里中央仓库或者华为中央仓库等等
group 仓库分组,类似一个文件夹,可以将hosted类型或者porxy类型的仓库进行合并显示,可以通过group一个仓库地址访问到多个仓库的依赖
hosted 本地仓库,可以上传jar或者下载依赖

proxy作用:

相当于把远程仓库搬到了本地,通过访问本地私库的地址,代理到指定的仓库地址。

group作用:

如果你需要两个依赖A和B,A在阿里仓库有,B在华为仓库,那么你可以配置两个代理仓库,分别代理阿里和华为仓库,然后再创建一个group,将两个代理仓库放入这个group仓库,那么在配置maven仓库的URL时只需要配置group这个仓库的地址就可以获取到A和B依赖。

hosted作用:

本地仓库,可以上传自己的jar包。

创建时需要设置部署策略(Deployment policy):

策略 作用
Allow redeploy 允许更新部署
Disable redeploy 禁用更新部署
Read-only 只读

如果设置禁用更新部署,那么在上传jar时不允许上传版本相同的jar,一般这么设置是为了防止正式版本被替换,所以正式版本仓库是不允许更新部署的,只能新增版本。则快照库允许更新部署,可以不断更新迭代。

第三部分:仓库使用

仓库部署好后,可以根据需求做不同配置,如果是pom文件依赖跟着项目走,则可以在pom文件中进行配置,如果是很多项目共用私库,又没有在pom文件中配置私库地址,则可以在本地maven配置文件中进行mirror替换(这种会用maven都会,不说了)
项目中配置:

xml 复制代码
	<!--使用maven deploy进行上传时,根据-后面的不同进行私库地址选择-->
	<groupId>org.example</groupId>
    <artifactId>SpringBootTemplate</artifactId>
    <version>1.2-SNAPSHOT</version>
    <!--<version>1.2-RELEASE</version>-->
   
	<!--<project>标签下配置本地仓库地址-->
	<!--配置多个地址时如果没找到会自动换下一个仓库地址寻找依赖-->
	<!--推荐通过私库配置group来进行本地仓库和远程仓库依赖的合并,避免过多配置-->
	<repositories>
        <repository>
            <id>release</id>
            <name>release</name>
            <url>http://xxx.xx.xx.xx:8081/repository/maven-release</url>
        </repository>
        <repository>
            <id>snapshots</id>
            <name>snapshots</name>
            <url>http://xxx.xx.xx.xx:8081/repository/maven-snapshots</url>
        </repository>
    </repositories>

    <!--配置上传私库地址 账号密码配置在settings.xml中server-->
    <distributionManagement>
    	<!--配置上传快照私库地址,版本后缀-SNAPSHOT-->
        <snapshotRepository>
            <id>snapshots</id>
            <name>snapshots</name>
            <url>http://xxx.xx.xx.xx:8081/repository/maven-snapshots</url>
        </snapshotRepository>
        <!--配置上传正式私库地址,版本后缀-RELEASE-->
        <repository>
            <id>releases</id>
            <name>releases</name>
            <url>http://xxx.xx.xx.xx:8081/repository/maven-releases/</url>
        </repository>
    </distributionManagement>
相关推荐
ok!ko1 小时前
设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)
java·设计模式·原型模式
2402_857589361 小时前
“衣依”服装销售平台:Spring Boot框架的设计与实现
java·spring boot·后端
吾爱星辰2 小时前
Kotlin 处理字符串和正则表达式(二十一)
java·开发语言·jvm·正则表达式·kotlin
哎呦没3 小时前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
雪域迷影3 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
编程、小哥哥3 小时前
netty之Netty与SpringBoot整合
java·spring boot·spring
IT学长编程4 小时前
计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·玩具租赁系统
莹雨潇潇4 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
杨哥带你写代码4 小时前
足球青训俱乐部管理:Spring Boot技术驱动
java·spring boot·后端
郭二哈5 小时前
C++——模板进阶、继承
java·服务器·c++