配置和使用Nexus私有仓库

本文详细介绍如何在Nexus中创建不同类型的仓库,包括hosted、proxy和group,并通过Spring Boot项目测试配置的有效性。此外,还介绍了如何将本地Maven仓库的内容上传至Nexus。

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/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值