Nexus搭建开发组的私有仓库
一、私有仓库的价值
开发Java应用系统,用到Maven、sbt和 Gradle等构建工具,在构建过程中一般需要从互联网下载依赖库,构建私有仓库就是为了在开发组或者部门内共用,从而节省整体的下载成本和构建成本。下面先以Maven为例说明。
Maven是一个强大的构建工具,一般用于Java项目。Maven项目基于对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。
Maven的Java项目一般需要下载第三方组件,下载后构成本地仓库,为了减少网络对构建项目的影响,一般会构建私服仓库,代理第三方库。Nexus就是构建私服仓库的优秀软件。
图 1 三层仓库架构
二、准备工作
2.1、安装Java编译环境
Java编译环境包括核心的JDK和编译工具,因为Java的编译工具有很多种,而开源项目作者的随意性很高,常用的工具有maven,gradle,sbt,ant等等,本文关注Maven。
因为Oracle不再维护Java1.7,所以采用Java 1.8作为编译核心.
2.1.1、安装
操作系统采用Centos7.4
yum install java-1.8.-openjdk-devel java-1.8.-openjdk java-1.8.-openjdk-headless -y
2.1.2、验证
查看jdk版本号
java -version
Picked up _JAVA_OPTIONS: -Xmx2048m -XX:MaxMetaspaceSize=512m -Djava.awt.headless=true
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK -Bit Server VM (build 25.131-b12, mixed mode)
2.1.3、设置环境变量
vi ~/.bashrc
增加
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
即刻生效
source ~/.bashrc
2.2、虚拟机访问互联网
vi /etc/sysconfig/network-scripts/ifcfg-ens32
注:环境不同网卡名会不同
增加天津联通的DNS(注:作者在天津,请按个人本地的运行商做相应修改)
DNS1=202.99.96.68
DNS2=202.99.104.68
在实际测试中感觉天津电信的DNS更加靠谱,访问一些特殊网站返回的IP能够顺利访问,大家根据实践选择吧
DNS1=219.150.32.132
DNS2=219.146.0.130
重新启动网络
systemctl restart network
测试
ping www..com
PING .xdwscache.ourglb0.com (42.81.9.47) () bytes of data.
bytes from 42.81.9.47 (42.81.9.47): icmp_seq= ttl= time=9.66 ms
bytes from 42.81.9.47 (42.81.9.47): icmp_seq= ttl= time=10.4 ms
…
三、安装Nexus
3.1、下载nexus
从官方网站现在最新3.X版
https://www.sonatype.com/download-oss-sonatype
下载(2018年3月)最新版nexus-3.9.0-01-unix.tar.gz ()
3.2、部署
先规划存储私有仓库的目录,作者本机的/opt目录空间较多,所以以/opt为例
cd /opt/scm
tar -xf ~/download/nexus-3.9.--unix.tar.gz -C .
生成两个目录
nexus-3.9.-
sonatype-work
3.3、系统服务
3.3.1、编辑系统服务文件
vi /etc/systemd/system/nexus.service [Unit]
Description=nexus service
After=network.target [Service]
Type=forking
LimitNOFILE=
ExecStart=/opt/scm/nexus-3.9.-/bin/nexus start
ExecStop=/opt/scm/nexus-3.9.-/bin/nexus stop
User=ansible
Restart=on-abort [Install]
WantedBy=multi-user.target
3.3.2、设置为自启动服务
sudo systemctl daemon-reload
sudo systemctl start nexus.service
sudo systemctl status nexus.service
sudo systemctl enable nexus.service
四、设置Nexus
4.1、浏览器登录
用户名的密码为:admin admin123
4.2、进入管理界面
4.3、增加新的代理源
设置名称和URL
Cache统一设置为200天 288000
逐个增加常用代理
. aliyun
http://maven.aliyun.com/nexus/content/groups/public
. apache_snapshot
https://repository.apache.org/content/repositories/snapshots/
. apache_release
https://repository.apache.org/content/repositories/releases/
. atlassian
https://maven.atlassian.com/content/repositories/atlassian-public/
. central.maven.org
http://central.maven.org/maven2/
. datanucleus
http://www.datanucleus.org/downloads/maven2
. maven-central (安装后自带,仅需设置Cache有效期即可)
https://repo1.maven.org/maven2/
. nexus.axiomalaska.com
http://nexus.axiomalaska.com/nexus/content/repositories/public
. oss.sonatype.org
https://oss.sonatype.org/content/repositories/snapshots
.pentaho
https://public.nexus.pentaho.org/content/groups/omni/
再次强调,在
How long (in minutes) to cache metadata before rechecking the remote repository.处
统一设置为
288000 即200天,当然可以设置为更长的时间
设置maven-public
将这些代理加入Group
4.3、设置私用仓库可重复发布
Nexus安装后自带maven-releases,maven-snapshots两个仓库,用于将生成的jar包发布在这两个仓库中,在实际开发中需要将maven-releases设置为可以重复发布。
maven-releases
注:maven-snapshots缺省是可以重新部署的。
五、安装maven并设置私用仓库
5.1、下载安装
从maven官网下载3.5.0 http://maven.apache.org/download.cgi
cd tools
tar -xf ../download/apache-maven-3.5.-bin.tar.gz –C .
5.2、设置环境变量
vi ~/.bashrc
增加
export PATH=/home/ansible/tools/apache-maven-3.5./bin:$PATH
即刻生效
source ~/.bashrc
5.3、测试
mvn -v Picked up _JAVA_OPTIONS: -Xmx2048m -XX:MaxMetaspaceSize=512m -Djava.awt.headless=true
Apache Maven 3.5. (ff8f5e7444045639af65f6095c62210b5713f426; --04T03::+:)
Maven home: /home/ansible/tools/apache-maven-3.5.
Java version: 1.8.0_102, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.-openjdk-1.8.0.102-.b14.el7.x86_64/jre
Default locale: en_US, platform encoding: UTF-
OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"
5.4、配置
vi ~/tools/apache-maven-3.5.0/conf/settings.xml(本地服务器可以使用localhost,开发组其他服务器则修改为对应Nexus服务器的域名或者IP地址)
<settings>
<pluginGroups>
<pluginGroup>org.sonatype.plugins</pluginGroup>
</pluginGroups>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
</settings>
Nexus搭建开发组的私有仓库的更多相关文章
- 用nexus搭建自己的maven私有仓库
用nexus搭建自己的maven私有仓库 刚安装nexus时,nexus启动失败,启动不到1分钟,自动停止.后来查找到了原因: Java 6 Support EOLOracle's support ...
- Docker容器化【Dockerfile编写&&搭建与使用Docker私有仓库】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- 搭建和使用Docker私有仓库
需要注意的是,从Docker Pool下载的镜像文件,与官方镜像文件是完全一致的. 安装Docker之后,可以是使用官方提供的registry镜像来搭建一套本地私有仓库环境: docker run ...
- 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像
❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...
- 搭建自己的 Docker 私有仓库服务
关于 Docker 的介绍这里就省了,Docker 在其相关领域的火爆程度不亚于今年汽车行业里的特斯拉,docCloud 甚至把公司名都改成了 Docker, Inc. 好东西总是传播很快,我们现在已 ...
- 使用nexus搭建一个maven私有仓库
使用nexus搭建一个maven私有仓库 大家好,我是程序员田同学.今天带大家搭建一个maven私有仓库. 很多公司都是搭建自己的Maven私有仓库,今天就带大家使用nexus搭建一个自己的私有仓库, ...
- Docker私有仓库Registry的搭建验证
1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...
- Docker私有仓库Registry 搭建
1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...
- docker使用registry搭建本地私有仓库
参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时 ...
随机推荐
- centos 6.8 下没有yum命令解决方法(报错: -bash: yum: command not found)
1.去 http://mirrors.163.com/centos/6/os/x86_64/Packages/ 地址下载4个rpm安装包:python-iniparse-0.3.1-2.1.el6.n ...
- 实验吧CTF练习题---WEB---猫抓老鼠解析
实验吧web之猫抓老鼠 地址:http://www.shiyanbar.com/ctf/20 flag值:KEY: #WWWnsf0cus_NET# 解题步骤: 1.观察题意,说是猫抓 ...
- Jmeter 逻辑控制器 之 事务控制器
前面我在做性能测试的时候,由于我们的系统是需要登录的,登录成功后,系统默认加载其订单数据,因此在用户看来这是一个操作.所以为了模拟这个操作,我需要访问两个接口,并且把这两个接口的响应时间算在一起,那么 ...
- 【第九篇】uploadify上传文件
依然不多说,上代码 首先是给文件夹的位置 然后上代码 <div class="upload"> <div class="uploadswf"& ...
- jvm内存溢出问题的定位方法
jvm内存溢出问题的定位方法 今天给大家带来JVM体验之内存溢出问题的定位方法. 废话不多说直接开始: 一.Java堆溢出 测试代码如下: import java.util.*; public cla ...
- 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?
我最近几年一直在做技术面试官,除了面试有一定工作经验的社会人员外,有时还会面试在校实习生和刚毕业的大学生.同时,我也在学校里做过兼职讲师,上些政府补贴课程(这些课程有补贴,学生不用出钱),所以我会在不 ...
- 第四周课程总结&试验报告(二)
实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性 ...
- Kubernetes Dashboard 终结者:KubeSphere
原文链接:Kubernetes Dashboard 终结者:KubeSphere 2018 年 7 月份,青云在 Cloud Insight 云计算峰会上推出了一款全新的容器平台--KubeSpher ...
- Java中对象创建时的内存分配
一.前言知识铺垫 1.逃逸对象:在一个方法内创建的对象没有被外界引用则称该对象为未逃逸的对象. 2.JDK1.6以后的HotSpot虚拟机支持运行时的对象逃逸分析. 3.JVM中的参数配置: 1) ...
- [Spark] 04 - HBase
BHase基本知识 基本概念 自我介绍 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”. ...