Tools-nexus-maven
maven私库nexus3搭建使用
常用命令
1 | #Maven 测试仓库命令,下载jar包,测试一般会报错,说没有权限 |
sonatype/nexus3安装
创建挂载目录
mkdir -p v-nexus/data
并修改目录权限chown -R 200 v-nexus/data
创建部署脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# 默认用户名admin/admin123
version: '3.2'
services:
nexus:
restart: always
image: sonatype/nexus3
ports: #自定义端口
- target: 8081
published: 18081 #只有worker能访问该端口
protocol: tcp
mode: host #版本要求3.2
volumes:
- "/dockerdata/v-nexus/data:/nexus-data"
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.hostname == lfadmin]测试访问
http://192.168.1.213:18081/
然后输入admin和admin123进行登陆即可
配置yum代理
远程原remote url: http://maven.aliyun.com/nexus/content/groups/public
新建一个type:yum(proxy)
在新建一个组yum(group),添加刚刚的代理地址,同理,可以添加elpe,docker等其他仓库代理
复制生成的地址http://192.168.1.230:18081/repository/yum-public/配置在`nexus.repo`
执行vim /etc/yum.repos.d/nexus.repo
1 | [nexusrepo] |
yum clean all
rm -rf /etc/yum.repos.d/C*
注意
epel源需要单独配置,直接用public不识别
执行vim /etc/yum.repos.d/nexus-epel.repo
1 | [nexus-epel-debuginfo] |
win10下maven安装
添加环境变量,新建系统环境变量
Maven_HOME
值为解压路径,编辑path
环境变量添加%Maven_HOME%\bin
命令窗口测试
mvn -v
,只支持cmd修改
apache-maven-3.5.4\conf\settings.xml
文件1
2<!--jar本地缓存地址-->
<localRepository>D:\MavenRepository</localRepository>完整的
setting.xml
设置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- jar本地缓存地址 -->
<localRepository>D:\MavenRepository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<!--配置权限,使用默认用户-->
<server>
<!--这里的id要和项目里的pom.xml的id一致-->
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
</mirrors>
<profiles>
<profile>
<id>MyNexus</id>
<activation>
<jdk>1.4</jdk>
</activation>
<repositories>
<!-- 私有库地址-->
<repository>
<id>nexus</id>
<name>>Nexus3 Repository</name>
<!-- 注意修改成对应的IP,在nexus里面复制public里面的地址 -->
<url>http://192.168.1.213:18081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<!-- snapshots默认是关闭的,需要手动开启 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<pluginRepository>
<id>nexus</id>
<url>http://192.168.1.213:18081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!--激活profile-->
<activeProfiles>
<activeProfile>MyNexus</activeProfile>
</activeProfiles>
</settings>在项目的pom.xml修改或添加如下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<project ...>
....
<!-- 配置maven地址 -->
<distributionManagement>
<repository>
<!--这里的id要和maven里的的settings.xml的id一致-->
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.1.213:18081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.1.213:18081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>编译在cmd执行
mvn install
发布上传jar执行mvn deploy
,可以到nexus地址进行检查使用私库下载和上传是一样的
nexus3 配置阿里云代理仓库
- 点击
Create Repository->maven2(proxy)
- 添加名字
aliyun-proxy
设置阿里云url地址http://maven.aliyun.com/nexus/content/groups/public
- 设置阿里云优先级,在
maven-public
里面的group把刚刚创建的添加过去并移到maven-central上面 - 设置允许发布release,在
maven-release
的hosted里面选择allow redeploy
创建第三方仓库
create repository->maven2(hosted)
name:3rd_part
hosted:Allow redeploy
添加
srd_part
到maven_public
如果没有
groupId
最好统一为com.3rdPart
标注为第三方包
发布上传jar包到nexus
语法:
1 | mvn deploy:deploy-file \ |
实战
1 | mvn deploy:deploy-file \ |
上传jar包到私有maven仓库
1 | mvn deploy:deploy-file -Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-druid -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -DpomFile=spring-boot-starter-druid-0.0.1-SNAPSHOT.pom -DrepositoryId=nexus-snapshots -Durl=http://192.168.1.213:18081/repository/maven-snapshots/ |
本地安装jar包到本地maven仓库
1 | mvn install:install-file -Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-druid -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar |
配置用户和角色
创建roles:
id:
nx-deploy
prlvlleges:
nx-repository-view-*-*-*
创建用户:
ID: develop
roles:
nx-deploy
maven 项目内局部配置私库地址
1 | ## pom.xml里面设置 |
问题
- 下载了找不到包,解决,删除项目重新导入,重新maven依赖
- 刚上传或添加了新的jar到私库,无法下载,解决,删除本地仓库的该包目录
- 注意powershell执行命令时需要在等号后面加双引号,不然改用cmd