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
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118115035483-1307351848.png)
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并构建私有 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
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118121014684-1715465793.png)
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118135226547-1248808606.png)
通过 nexus 作为公司内网 yum 仓库,通过阿里云镜像安装包。本例以zabbix为例:
https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/ #阿里云镜像地址
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118135509734-1377049702.png)
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118135509734-1377049702.png)
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118141119681-752271451.png)
![](https://img2023.cnblogs.com/blog/985466/202301/985466-20230118141536972-1363201135.png)