Nexus是一个强大的maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。maven的官方仓库:https://repo.maven.apache.org/Nexus官方下载地址:https://help.sonatype.com/repomanager3/p
Nexus是一个强大的maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。 maven的官方仓库:https://repo.maven.apache.org/ Nexus官方下载地址:https://help.sonatype.com/repomanager3/product-information/download
部署Nexus
安装的内存推荐使用4G或以上,内存太小的话会导致无法启动的 系统安装要求文档:https://help.sonatype.com/repomanager3/product-information/system-requirements
安装nexus之前也需要安装jdk环境,nexus也是依赖于java环境的,在这里我准备了oracle的jdk和一个安装脚本。
root@master1:~# ls
jdk-8u311-all-linux-x64.tar.gz snap
root@master1:~# tar xf jdk-8u311-all-linux-x64.tar.gz
root@master1:~# ls
install_jdk.sh jdk-8u311-all-linux-x64.tar.gz jdk-8u311-linux-x64.tar.gz snap
root@master1:~# cat install_jdk.sh
#!/bin/bash
DIR=`pwd`
JDK_FILE="jdk-8u311-linux-x64.tar.gz"
JDK_DIR="/usr/local"
color () {
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \E[0m"
echo -n "$2" && $MOVE_TO_COL
echo -n "["
if [ $1 = "success" -o $1 = "0" ] ;then
${SETCOLOR_SUCCESS}
echo -n $" OK "
elif [ $1 = "failure" -o $1 = "1" ] ;then
${SETCOLOR_FAILURE}
echo -n $"FAILED"
else
${SETCOLOR_WARNING}
echo -n $"WARNING"
fi
${SETCOLOR_NORMAL}
echo -n "]"
echo
}
install_jdk () {
if ! [ -f "$DIR/$JDK_FILE" ];then
color 1 "$JDK_FILE 文件不存在"
exit;
elif [ -d $JDK_DIR/jdk ];then
color 1 "JDK 已经安装"
exit
else
[ -d "$JDK_DIR" ] || mkdir -pv $JDK_DIR
fi
tar xvf $DIR/$JDK_FILE -C $JDK_DIR
cd $JDK_DIR && ln -s jdk1.8.* jdk
cat > /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JDK_DIR/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=\$JAVA_HOME/lib/:\$JRE_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
. /etc/profile.d/jdk.sh
java -version && color 0 "JDK 安装完成" || { color 1 "JDK 安装失败" ; exit; }
}
install_jdk
root@master1:~# bash install_jdk.sh
root@master1:~# java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
下载nexus二进制包并启动服务
root@master1:~# mkdir -p /data/service/ && cd $_
root@master1:/data/service# ls
nexus-3.48.0-01-unix.tar.gz
root@master1:/data/service# tar xf nexus-3.48.0-01-unix.tar.gz
root@master1:/data/service# ln -s /data/service/nexus-3.48.0-01 /data/service/nexus
root@master1:/data/service# vi /lib/systemd/system/nexus.service
root@master1:/data/service# cat /lib/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/data/service/nexus/bin/nexus start
ExecStop=/data/service/nexus/bin/nexus stop
User=root
Restart=on-abort
[Install]
WantedBy=multi-user.target
root@master1:/data/service# systemctl enable nexus.service
Created symlink /etc/systemd/system/multi-user.target.wants/nexus.service → /lib/systemd/system/nexus.service.
root@master1:/data/service# systemctl start nexus.service
Hosted:本地仓库,通常我们会部署自己的构建到这一类型的仓库,例如公司的第三方库 Proxy:代理仓库,它们被用于代理远程的公共仓库,如maven中央仓库(官方仓库) Group:仓库组,这个用于合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次的引用了,只需要引用一个group就可以了
创建blob数据目录
默认的blob数据目录是在default下
使用nexus构建私有的apt仓库并测试
在目标测试主机上设置私仓
使用nexus构建私有的yum仓库并测试
在目标测试主机上设置私仓