maven介绍 搭建Nexus3(maven私服搭建)

Maven是一个强大的项目管理工具,它基于项目对象模型(POM:Project Object Model)的概念,通过XML格式的配置文件(pom.xml)来管理项目的构建

Maven确实可以被视为一种工程管理工具或项目自动化构建工具。它不仅仅是一个工具,而是一种理念和一套规范,用于帮助开发者管理和构建项目。Maven通过定义项目的构建生命周期、依赖关系以及插件机制,实现了对项目构建过程的自动化和标准化管理。

  1. 远程仓库(中央仓库(不在本地的仓库就是中央仓库) 镜像仓库 私有仓库)
  2. 生命周期 常用四个(clean install deploy package(包含install test 所以要把 这个点上 就没有test了)

官网下载Nexus

下载Nexus Repository OSS |索纳型 (sonatype.com)

前提是你服务器买好了 docker安装好了 下面是我整理的docekr安装

Linux 创建虚拟机内存 +安装docekr+-CSDN博客

或者

连接上虚拟机直接上命令

cd /usr/

mkdir swap

cd swap/

创建空间 dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096

设置交换等等 mkswap /usr/swap/swapfile

激活 swapon /usr/swap/swapfile

vim /etc/fstab里面放

/usr/swap/swapfile swap swap defaults 0 0

sudo yum install -y yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

然后

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://hub.uuuadc.top",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

如果报这个错误Job for docker.service failed because the control process exited with error code.

See "systemctl status docker.service" and "journalctl -xe" for details.

说明你没有弄好 需要去/etc/docker/daemon.json 里面修改格式

{
    "registry-mirrors": [
        "https://hub.uuuadc.top",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn"
    ]
}

在去sudo systemctl daemon-reload

sudo systemctl restart docker

docker 安装完毕

开始安装 nexus

docker pull sonatype/nexus3:3.49.0

cd /

cd /home

ll

 mkdir nexus

cd

 mkdir nexus

vim deployNexus.sh

脚本里放

#!/bin/bash
docker run -d \
 --restart=always \
 --name=nexus \
 --network host  \
 --privileged=true \
 -eINSTALL4J_ADD_VM_PARAMS="-Xms256M -Xmx512M -XX:MaxDirectMemorySize=512M" \
 sonatype/nexus3:3.49.0

sh deployNexus.sh && docker logs -f -t nexus

成功

测试一下看有没有绑定 curl 127.0.0.1:8081

没毛病 继续

把端口放开就可以访问了

这个时候登录出现这个

意思你要去服务器上操作

docker exec -it nexus cat /nexus-data/admin.password

回车后会给你字符串 你复制这个去这个界面登录

用户名 admin密码就是刚刚回车的内容 记住 admin用户名是不能改变的 只能修改密码

现在安装完了 登录完了 开始进入主题

aven私服M

使用前说明

nexus默认已建好4个库,简单解析下各个库的作用
maven-central 默认配好的中央仓库,指向https://repo1.maven.org/maven2/
maven-releases 一般用于自己存放自己开发项目的稳定版本,默认不能重复发布,即deploy,可以设置为允许重复deploy
maven-snapshots 一般用于存放自己开发项目的快照版本,默认允许重复发布
maven-public 组合库,一般是组合以上三种库,通常在项目中配置这个仓库

group:仓库聚合,默认是releases>snapshots>central,可以在仓库管理界面引入其他配置的库,并设置顺序

hosted:私有仓库,存放自己开发的jar

snapshots:本地项目的快照仓库

releases: 本地项目发布的正式版本

proxy:代理类型,可以配置aliyun的仓库

central:中央仓库

nexus仓库类型主要分为三种

  • proxy 远程代理仓库jar放置的目录
  • hosted 本地仓库jar放置的目录,我们一般部署自己的jar到这个类型的仓库
  • group远程代理仓库jar和本机仓库jar

环境配置

可以创建属于自己的

选择代理模式

远程仓库改为阿里云远程仓库

https://maven.aliyun.com/repository/public

去公共

进去 点击按钮把他拉过来

把阿里云的优先级提到公共仓库

点击public的URL按钮就出现这个地址

开始搭建自己的 找到你Maven目录下面的 复制一份 改个你知道的名字 我是2112

然后点2112文件进去修改

找到这个位置 修改成你前面设置的密码

四、修改本地maven配置

打开本地的maven下的conf/settings.xml

加入servers , 您的私服账户和密码,确保有权限 # server.id(muyu-maven)必须和mirror.id/repository.id(muyu-maven)保持一直

<servers>

<server>

<id>maven-releases</id>

<username>用户名</username>

<password>密码</password>

</server>

<server>

<id>maven-snapshots</id>

<username>用户名</username>

<password>密码</password>

</server>

</servers>

2.配置私服地址

<mirror>

<id>maven-central</id>

<mirrorOf>*</mirrorOf>

<name>my maven resp</name>

<url>http://ip:端口/repository/maven-public/</url>

</mirror>

查看方法

然后变成这个 就去

  • clean
  • install

等待下载就行了 完事了

私服上传

用户配置

<server>

<id>muyu-releases</id>

<username>用户名</username>

<password>密码</password>

</server>

上传路径配置

<distributionManagement>

<repository>

<id>muyu-releases</id>

<name>muyu-releases</name>

<url>http://IP:8081/repository/maven-releases/\</url>

</repository>

</distributionManagement>

源码插件

<build>

<plugins>

<!-- 要将源码放上去,需要加入这个插件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-source-plugin</artifactId>

<version>3.0.1</version>

<configuration>

<attach>true</attach>

</configuration>

<executions>

<execution>

<phase>compile</phase>

<goals>

<goal>jar</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

忽略程序包

<!-- 加入maven deploy插件,当在deploy时,忽略些model-->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-deploy-plugin</artifactId>

<configuration>

<skip>true</skip>

</configuration>

</plugin>

相关推荐
雷神乐乐8 分钟前
File.separator与File.separatorChar的区别
java·路径分隔符
小刘|13 分钟前
《Java 实现希尔排序:原理剖析与代码详解》
java·算法·排序算法
逊嘘32 分钟前
【Java语言】抽象类与接口
java·开发语言·jvm
morris13139 分钟前
【SpringBoot】Xss的常见攻击方式与防御手段
java·spring boot·xss·csp
七星静香1 小时前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员1 小时前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU1 小时前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie61 小时前
在IDEA中使用Git
java·git
Elaine2023911 小时前
06 网络编程基础
java·网络
G丶AEOM1 小时前
分布式——BASE理论
java·分布式·八股