1.上传nexus文件安装包到服务器并解压
2.启动私服并测试
如果需要修改nexus的端口, 可在你安装nexus的文件目录下找到nexus.properties 进行修改,如
vim /opt/nexus3/nexus-3.13.0-01/etc/nexus-default.properties ,
找到 application-port=8081进行修改即可
./nexus start #后台启动,看不到实时日志
./nexus run #实时启动可以看到日志
./nexus status #查看启动状态
./nexus stop #停止
浏览器输入ip:8081 进行访问测试
如果不能访问请检查端口是否被防火墙拦截
查看防火墙状态:
Firewall-cmd --state
检查防火墙开放的端口
firewall-cmd --permanent --zone=public --list-ports
开放一个新的端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
3.上传本地仓库到服务器
将mavenimport.sh脚本文件放入解压后的nexus文件夹中
mavenimport.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}/{} ;
cp mavenimport.sh nexus-3.9.0-01
4.Nexus创建私有仓库
浏览器输入ip:8081访问,登陆账号admin/admin123
根据图示完成操作:
将私库加入到maven-public中
5.上传私库到nexus服务器上
执行mavenimport.sh脚本文件
http://172.16.199.220:8081为内网地址,映射至外网xxx.xx.xx.xx:2022地址
./mavenimport.sh -u admin -p admin123 -r http://172.16.199.220:8081/repository/3rd-party
6.检查文件是否上传成功
问题及解决方式
启动时报错
解决方法
修改/root/nexus/nexus-3.9.0-01/bin/nexus 文件
将run as root=true 改为 run as root=false
执行失败,未授权
./ mavenimport.sh -u admin -p admin123 -r http://172.16.199.220:8081/repository/3rd-party
修改文件权限
chmod 777 file1 #该文件 ugo的权限都是 读写可执行
整合idea
修改maven配置文件setting
<server>
<id>xx-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>xx-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
无需配置内容
</mirrors>
<profiles>
<profile>
<id>xx</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven-public</id>
<name>nexus maven-public</name>
<url>http://xxx.xx.xx.xx:2022/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://xxx.xx.xx.xx:2022/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
idea配置pom文件
<distributionManagement>
<snapshotRepository>
<id>yusys-snapshots</id>
<url>http://xxx.xx.xx.xx:2022/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>yusys-releases</id>
<url>http://xxx.xx.xx.xx:2022/repository/maven-releases/</url>
</repository>
</distributionManagement>