Maven和Nexus

 

一、Maven和Nexus工作流程:

1.运维使用任务去gitlab摘取java代码。
2.当代码如果没有编译时,使用maven编译服务器执行编译生成代码项目
3.maven编译时,会调用依赖包,会去maven官方仓库(https://repo.maven.apache.org)调用依赖包,也会从( npm config set registry https://registry.npm.taobao.org)。
4.依赖包一般在国外,在公司内部会搭建内部仓库,叫nexus,依赖包会从nexus下载。

 

 二、Maven说明和使用

实战:以 github 上 java 开源项目 dubbo-admin 为例

安装zookeeper.参考地址:https://www.cnblogs.com/Yuanbangchen/p/17056168.html

#Maven是一个基于 Java 的项目管理工具,因此最基本的要求是在计算机上安装 JDK。
[root@localhost7K ]# yum intall openjdk-8-jdk

#调用依赖包,服务器修改 node.js 源为淘宝源,加速资源下载
[root@localhost7K ]# wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.gz
[root@localhost7K ]# tar xvf node-v14.15.1-linux-x64.tar.gz 
[root@localhost7K ]# ln  -sv  node-v14.15.1-linux-x64  nodejs
[root@localhost7K ]# vim  /etc/profile
[root@localhost7K ]#  .  /etc/profile
[root@localhost7K ]#  npm -v
[root@localhost7K ]# npm config set registry https://registry.npm.taobao.org



#下载maven软件和设置变量路径 
[root@localhost7K ]#cd /usr/local/src/
[root@localhost7K ]# wget https://archive.apache.org/dist/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
[root@localhost7K local]# ln   -sv apache-maven-3.6.2  maven
"maven" -> "apache-maven-3.6.2"

[root@localhost7K maven]# vim  /etc/profile
export PATH=/usr/local/maven/bin/:/usr/local/nodejs/bin/:$PATH
[root@localhost7K maven]# . /etc/profile

   
[root@localhost7K maven]# mvn -v
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_222-ea, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.el7.x86_64", arch: "amd64", family: "unix"


#下载源码项目
[root@localhost7K ]# yum install git
[root@localhost7K ]# git clone https://github.com/apache/dubbo-admin.git


#执行源码编译:
[root@localhost7K ~]# cd dubbo-admin/  #进入到源码目录

[root@localhost7K dubbo-admin]# ls
codestyle  DISCLAIMER  docker                    dubbo-admin-server  dubbo-admin-ui  mvnw      NOTICE   README.md
deploy     doc         dubbo-admin-distribution  dubbo-admin-test    LICENSE         mvnw.cmd  pom.xml  README_ZH.md

#修改源码dubbo-admin配置文件
[root@localhost7K dubbo-admin]# vim dubbo-admin-server/src/main/resources/application.properties
server.port=38080
dubbo.protocol.port=30880
dubbo.application.qos-port=32222

# centers in dubbo2.7, if you want to add parameters, please add them to the url
admin.registry.address=zookeeper://192.168.80.170:2181
admin.config-center=zookeeper://192.168.80.170:2181
admin.metadata-report.address=zookeeper://192.168.80.170:2181

#执行 java 源码编译并跳过测试单元
[root@localhost7K dubbo-admin]# mvn clean install package -Dmaven.test.skip=true 


#验证 java 包
[root@localhost7K dubbo-admin]# cd  dubbo-admin-distribution/target/
[root@localhost7K target]# ls
antrun   dubbo-admin-0.5.0-SNAPSHOT.jar               maven-archiver
classes  dubbo-admin-distribution-0.5.0-SNAPSHOT.jar  maven-shared-archive-resources

 
#启动服务测试:
[root@localhost7K target]# java  -jar dubbo-admin-0.5.0-SNAPSHOT.jar 

 

 web登录测试

 

zookeeper查看

 

 

 

 

 ==========================================================================================================================

 三、Nexus说明和使用

Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。

Maven私服其实并不是Maven的核心概念,它仅仅是一种衍生出来的特殊的仓库,但这并不代表它不重要,相反由于私服具有降低中央仓库负荷、
节省外网带宽、以及提高项目稳定性等优点,使得私服在实际开发过程中得到了相当普遍地使用。

能够帮助我们建立私服的软件被称为 Maven 仓库管理器,主要有以下 3 种:
Apache Archiva
JFrog Artifactory
Sonatype Nexus

其中,Sonatype Nexus 是当前最流行,使用最广泛的 Maven 仓库管理器。Nexus 分为开源版和专业版,其中开源版足以满足大部分 Maven 用户的需求。

Nexus 开源版具有以下特性:
占用内存小(28 M 左右)
具有基于 ExtJs 得操作界面,用户体验较好
使用基于 Restlet 的完全 REST API
支持代理仓库、宿主仓库和仓库组
基于文件系统,不需要依赖数据库
支持仓库索引以及搜索
支持在界面上上传构件
安全控制

参考文档:http://c.biancheng.net/nexus/

仓库的类型仓库:
Hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库,比如公司的第三方库
Proxy:代理仓库,它们被用来代理远程的公共仓库,如 maven 中央仓库(官方仓库)。
Group:仓库组,用来合并多个 hosted/proxy 仓库,当你的项目希望在多个
repository 使用资源时就不需要多次引用了,只需要引用一个 group 即可。

nexus 数据备份:
Nexus 中普通数据信息和元数据是分开存储的,普通数据是保存在 blob 中,而元数据保存在数据库中,所以在备份的时候必须同时进行备份普通数据和元数据,才能在后期恢复数据的时候保证数据的最终完整性。

blob 数据:
普通数据信息在 Nexus 中是保存在 blob 中的,所以此部分数据必须进行备份,blob 的典型配置中,此目录对应着 Nexus 的数据目录的 blobs 子目录。

元数据:
元数据在 Nexus 中是在数据库中进行保存的,为了保证数据的完整性,Nexus需要同时将数据库中的数据进行导出和备份


安装nexus并构建私有 yum 仓库示例

内存推荐 4G 或以上,太小会导致无法启动
root@nexus-server:/usr/local/src# tar xf nexus-3.20.1-01-unix.tar.gz
root@nexus-server:/usr/local/src# ln -sv /usr/local/src/nexus-3.20.1-01
/usr/local/nexus
'/usr/local/nexus' -> '/usr/local/src/nexus-3.20.1-01'
root@nexus-server:/usr/local/src# cd /usr/local/nexus
[root@localhost7K nexus]# ./bin/nexus --help
[root@localhost7K nexus]# ./bin/nexus run #前台
[root@localhost7K nexus]# ./bin/nexus start #后台



账号admin ,登录密码文件和配置文件
[root@localhost7K nexus]# ll /usr/local/sonatype-work/nexus3/admin.password
[root@localhost7K nexus]# ll etc/nexus-default.properties



创建nexus 数据目录

 

通过 nexus 作为公司内网 yum 仓库,通过阿里云镜像安装包。本例以zabbix为例:
https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/ #阿里云镜像地址

setting--Create repository—yum(proxy)






centos 7.x 客户端添加配置 yum 仓库:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix-nexus]
name=zabbix
baseurl=http://http://192.168.80.200:8081/repository/zzhz-zabbix/
enabled=1
gpgcheck=0

centos7.x 安装 zabbix 测试:
# yum install zabbix-agent zabbix-get --nogpgcheck

 

验证 nexus 数据

 

 

posted @ 2023-01-18 09:37  yuanbangchen  阅读(110)  评论(0编辑  收藏  举报