1 仓库类型介绍
hosted,提供本地私库功能的类型;
proxy,提供代理其它仓库的类型;
group,组合多个仓库为一个地址提供服务的类型。
2 创建blob存储

3 选择仓库类型
选择maven2(hosted)、maven2(proxy)、maven2(group)分别创建相应的类型仓库。

4 创建hosted类型仓库
Storage 选择创建号的mvn-blob仓库;Virsion pollcy选择Release;Hosted选择Allow redeploy;

5 创建proxy 类型仓库
Proxy使用 Central Repository:
Storage选择 mvn-blob

6 创建 group类型仓库
Storage选择 mvn-blob
Group在Members选择mvn-proxy和mvn-local

7 最终建成的仓库
可以看到有mvn-group、mvn-proxy、mvn-local三个仓库。

8 配置maven和使用Nexus
(1)配置Maven
修改mavan中的settings.xml
<servers>
<server>
<!-- 填写登陆Nexus时的账号和密码 -->
<username>admin</username>
<password>123456</password>
<id>mvn-nexus</id>
</server>
</servers>
<mirrors>
<mirror>
<id>mvn-nexus</id>
<mirrorOf>*</mirrorOf>
<name>Mvn nexus</name>
<!-- 此处localhost更换为相应的ip地址 -->
<url>http://localhost:8081/repository/mvn-group/</url>
</mirror>
</mirrors>
(2)使用Springboot测试
在 https://start.spring.io/ 下载开发包,进行测试。
# 解压demo
unzip demo.zip
# 进入目录
cd demo/
# 使用maven安装
mvn install -e
# 执行过程中出现下面的结果,就成功了
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
Downloading from mvn-nexus: http://localhost:8081/repository/mvn-group/org/springframework/boot/spring-boot-starter-parent/2.4.5/spring-boot-starter-parent-2.4.5.pom
Downloaded from mvn-nexus: ……
………………
# 如果出现下面的问题是因为没有正确配置servers(见上文)
org.apache.maven.model.resolution.UnresolvableModelException: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.4.5 from/to nexus-osc (http://localhost:8081/repository/mvn-group/): Not authorized , ReasonPhrase: Unauthorized.
(3)最终的结果如下

(4)使用idea和STS
如果使用Springboot测试成功,只需要在idea和STS中配置maven的settings就能成功。

9 将本地仓库上传到Nexus
mvnimport.sh文件
#!/bin/bash
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":r:u:p:" opt; do
case $opt in
r) REPO_URL="$OPTARG"
;;
u) USERNAME="$OPTARG"
;;
p) PASSWORD="$OPTARG"
;;
esac
done
find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}{} ;
执行脚本
mvnimport.sh放在本地仓库的目录下面。
# 赋值权限
sudo chmod 777 mvnimport.sh
# 执行脚本
./mavenimport.sh -u admin -p 123456 -r http://localhost:8081/repository/mvn-group/
本文详细介绍如何在Nexus中创建不同类型的仓库,包括hosted、proxy和group,并通过Spring Boot项目测试配置的有效性。此外,还介绍了如何将本地Maven仓库的内容上传至Nexus。
3558

被折叠的 条评论
为什么被折叠?



