Maven是一个强大的项目管理工具,它基于项目对象模型(POM:Project Object Model)的概念,通过XML格式的配置文件(pom.xml)来管理项目的构建
Maven确实可以被视为一种工程管理工具或项目自动化构建工具。它不仅仅是一个工具,而是一种理念和一套规范,用于帮助开发者管理和构建项目。Maven通过定义项目的构建生命周期、依赖关系以及插件机制,实现了对项目构建过程的自动化和标准化管理。
- 远程仓库(中央仓库(不在本地的仓库就是中央仓库) 镜像仓库 私有仓库)
- 生命周期 常用四个(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
环境配置
可以创建属于自己的
选择代理模式
远程仓库改为阿里云远程仓库
去公共
进去 点击按钮把他拉过来
把阿里云的优先级提到公共仓库
点击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>