nexus 仓库类型_Maven私服Nexus的搭建

52137779315d4447d43e727d2d87670e.png

私服存在的合理性

Maven中的依赖是从服务器仓库中下载的,Maven的仓库只有两大类:

    1. 本地仓库
    2. 远程仓库,其中在远程仓库中又分成了3种:中央仓库 、私服、其它公共库。

Maven用户直接连接远程仓库下载构件的做法是Maven不建议使用的(尤其是对一个开发团队来说),Maven的最佳实践就是使用Maven私服来构建整个团队的项目部署和管理
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。

构建Maven私服使用Nexus,Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。

构建你的Nexus

说完了私服的好处,你是不是已经等不及开始构建你的maven私服了,那么我们开始一起构建我们的私服。首先进入Nexus的网站http://www.sonatype.org/nexus/go/,找到你需要的包,下载(演示在CentOS上安装):

d24534cf0cef0a602dd6147c722f7792.png

如果你希望用一些历史版本的包,https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3,里面自行查找。
首先下载对应的包到服务器上:

mkdir tools #新建tools目录
cd tools # 进入tools目录
wget http://download.sonatype.com/nexus/3/nexus-3.14.0-04-unix.tar.gz # 下载对应的安装包
tar zxvf nexus-3.14.0-04-unix.tar.gz # 解压缩
mv nexus-3.14.0-04/ /usr/local/nexus
cd /usr/local/nexus/bin

安装java运行环境:

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

配置私服

修改nexus.rc,让root可以启动nexus,nexus.rc在/usr/local/nexus/bin/下:

vim nexus.rc,删除run_as_user前面的注释,后面加上root:run_as_user=root

然后按esc按键,输入:wq回车。然后启动nexus

./nexus run &

出现如下内容,表示启动成功

2cd531b8ddbe15afa6cc48f4e3b2bf63.png

通过http://localhost:8081就可以访问了。

a700026eac441eb131efe41d3ffa2015.png

手动同步索引(非必选项)

首先:前往maven中央仓库下载 indexer-cli-5.1.1.jar解压工具

其次下载:nexus-maven-repository-index.properties和nexus-maven-repository-index.gz

再次,将上面下载的3个文件放到同一个路径下,通过如下命令解压:

java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer

最后,拷贝索引

nexus3.x拷贝到/sonatype-work/nexus3/blobs/default,3.x

web的使用

首先访问对应的地址,然后输入默认用户名 admin、密码 admin123

a7ae414dfdfa6754b8818c4b1b5c07bf.png

点击左侧的browse,可以看到各种repository的type,那么这些类型有什么区别呢:

  • Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的
    所有仓库资源,访问顺序取决于配置顺序3.x默认Releases,Snapshots,Central,可在web页面配置
    在web界面点开
  • Hosted:私有仓库,专门用来存储我们自己生成的jar文件
  • 3rd party:未发布到公网的第三方jar (3.x去除了)
  • Snapshots:本地项目的快照仓库
  • Releases: 本地项目发布的正式版本
  • Proxy:公网上发布的jar 例如:spring
  • Central:中央仓库
  • Apache Snapshots:Apache专用快照仓库(3.x去除了)

进入设置页面

d074a693d43e4d635bec39eac38acdf5.png

作如下操作:

a3ac1eede32acdfbbeadae2feb212109.png

配置maven的setting.xml(本地的全局配置)

在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置(下文中192.179.101.1:8081需要替为你自己的)
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><servers><server><id>nexus-releases</id><username>deployment</username><password>deployment123</password></server><server><id>nexus-snapshots</id><username>deployment</username><password>deployment123</password></server></servers><mirrors><mirror><id>nexus-releases</id><mirrorOf>*</mirrorOf><url>http://192.168.101.1:8081/content/groups/public/</url><!-- <url>http://repo1.maven.org/maven2/</url> --></mirror><mirror><id>nexus-snapshots</id><mirrorOf>*</mirrorOf><url>http://192.168.101.1:8081/content/repositories/snapshots/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --></mirror></mirrors><profiles><profile><id>nexus</id><repositories>                            <repository><id>nexus-releases</id><url>http://192.168.101.1:8081/content/groups/public/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository><repository><id>nexus-snapshots</id><url>http://192.168.101.1:8081/content/repositories/snapshots/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>nexus-releases</id><url>http://192.168.101.1:8081/content/groups/public/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository><pluginRepository><id>nexus-snapshots</id><url>http://192.168.101.1:8081/content/repositories/snapshots/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository>				</pluginRepositories></profile></profiles><activeProfiles><activeProfile>nexus</activeProfile><!--<activeProfile>dev</activeProfile>--></activeProfiles></settings>

捷径:docker部署Nexus

docker确实是个好东西,快速,方便,使用docker部署Nexus那就是几分钟的事情具体如下命令:

docker pull sonatype/nexus3 docker run -d -p 8081:8081 --name nexus sonatype/nexus3

启动完成后,方位http://localhost:8081就可以进入web页面了,其他操作和配置和上面的内容一致,因此这部分就不在这里描述了。

·············欢迎关注专栏:

《测试技术的修炼之道》


作者:测者陈磊

链接:http://www.imooc.com/article/293262

来源:慕课网

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用soapUI测试webservice

测试webservice时&#xff0c;有时需要写一个客户端来向服务端发起请求才可以测试服务&#xff0c;最近看到一款工具soap ui&#xff0c;也可以调试VS2010中的程序。 首先要把webservice 发布到本地&#xff0c;网上已经有发布本地的例子&#xff0c;这里就不细说了。发布之后&…

ae中心点重置工具_AE中图形绘制的6大技巧,简单易操作

AE中的图形系统和文字系统很相似&#xff0c;都有自己相对独立的一套基础动画系统。当我们打开AE软件&#xff0c;面对空白的面板&#xff0c;如何通过一步步的操作填充画面&#xff0c;做出酷炫的效果&#xff0c;这其中图形占据很大的比重&#xff0c;更不用说流行的MG动画&a…

360浏览器 ajax取缓存,web开发遇到的坑之360浏览器缓存问题

web开发遇到的坑之360浏览器缓存问题再使用360浏览器&#xff0c;浏览我自己开发的一个配置的web管理后台时&#xff0c;发现&#xff0c;使用ctrlF5都不能刷新表格的数据&#xff0c;还有&#xff0c;我添加字段时&#xff0c;明明是添加成功的&#xff0c;用sql再数据库查都能…

Mac安装软件报“打不开。。。,因为它来自身份不明的开发者”的解决办法

问题描述 在Mac上安装git&#xff0c;双击pkg进行安装&#xff0c;报如下图错误&#xff1a; 解决办法 不要双击pkg文件&#xff0c;改成选中文件之后&#xff0c;鼠标右键&#xff0c;选择“打开方式->安装器&#xff08;默认&#xff09;”&#xff0c;即可继续安装。 转载…

模型预测控制c语言程序_搭建第一个程序控制电路LED灯,体会C语言的魅力

学习C语言&#xff0c;先从读程序开始&#xff01;这一点是过来人的经验之谈。本文建议大家选择一款图形编程软件&#xff0c;本文选择了Mixly。一、首先&#xff0c;介绍一下arduino UNO控制器内部电压的问题。v 高电平(5V)&#xff1a;对应数值是1&#xff0c;输入状态3.5V-5…

ajax通过什么实现,ajax(通过jQuery实现)

使用jQuery实现ajax相对来说方便一点&#xff0c;看w3cschool有几种实现的方法&#xff0c;我就总结一下自己以后会用到的几种方法$.ajax方法&#xff1a;$.ajax方法里面有很多个参数可以使用&#xff0c;但我这里就写自己常用的几个参数&#xff1a;1.url:要求为String类型的参…

mysql: you can't specify target table 问题解决

首先创建一个表&#xff1a; CREATE TABLE t1 ( id INT(11) NULL DEFAULT NULL, name VARCHAR(20) NULL DEFAULT NULL ) 插入几条数据&#xff1a; mysql> select * from t1; ------------ | id | name | ------------ | 1 | chen | | 2 | li | | 3 | huan | -…

s丅7318是啥芯片_透彻解析LED驱动芯片HT1632C指令集与驱动编程

HT1632C是一款很常用的LED(数码管或点阵)驱动芯片&#xff0c;虽然官方已经宣布该芯片明年(2021年)即将寿终正寝(停产)&#xff0c;但是相同厂家生产的同系列芯片的控制方式通常是相同的(事实上&#xff0c;大多数LED驱动芯片差别也不大)&#xff0c;所以了解HT1632C的控制原理…

服务器显示不明用户远程过,服务器显示不明用户远程过

服务器显示不明用户远程过 内容精选换一换Windows操作系统云服务器蓝屏&#xff0c;如图1所示。使用了来源不明的第三方软件。CPU占用过高导致。因为误操作或者病毒引起的系统文件、注册表损坏。操作系统在蓝屏的情况下&#xff0c;会显示对应的bugcheck code以及可能的导致蓝屏…

【转】Linux ln(link) 命令详解

原文链接 http://blog.chinaunix.net/uid-25445243-id-3206874.html 功能&#xff1a;为某一个文件或目录在另外一个位置建立一个同步的链接&#xff0c;类似Windows下的超级链接。这个命令最常用的参数是-s&#xff0c;具体用法是&#xff1a;sudo ln -s 源文件 目标文件当我们…

微信小程序定义全局变量_微信小程序第二天学习内容分享

微信小程序的生命周期文件的配置在app.js文件中&#xff1b;方法&#xff1a;onLaunch,onShow,onHideapi链接&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onHideonError,当前也可以自定义&#xff0c;用console测试事件的执行情况&a…

discuz设置用户每天回帖数_discuz回贴通知插件实现-显示用户状态设置

一、完善用户是否开启回贴通知回贴通知插件建立模块时&#xff0c;指定了核心文件post_set.inc.php1、创立好数据库建立独立数据表(不建议直接修改原有的discuz数据库&#xff0c;防止discuz升级后数据库发生变化)&#xff0c;来保存是否开启回贴通知。create table 前缀_模块_…

C++中的数组与指针

数组与指针看起来很像 int a[] {1, 2 ,3}; int *p a; 如此,我们可以p[0], p[1], p[2] 看起来,与直接使用数组名没什么两样,但是看这段代码 sizeof(a) sizeof(p) 你就会知道,原来数组里还隐含了大小信息,这是指针所不能做到的 严格的说,数组是一种内置的数据类型,C标准对这种数…

iic总线从机仲裁_I2C总线的仲裁问题

【问】有网友问关于I2C总线的仲裁问题&#xff1a;The I2C-bus specification的第13页有这样的话&#xff1a;In other words, arbitration isn’t allowed between:* A repeated START condition and a data bit* A STOP condition and a data bit* A repeated START conditio…

jvm 加载class文件过程

jvm 加载class文件分为装载-链接-初始化三个过程。 load -------->link verify prepare resolve ---------->initialize (类加载过程) bootstrap class Loader | | extenstion class loader | | system class Loader | | ----------- user-define user-define…

dvt高危患者的护理措施_dvt的预防及护理

DVT的预防措施高危患者预防深静脉血栓的护理措施一、深静脉血栓的预防对象 1.大手术病人&#xff1a;三类、四类手术病人。 2.高危患者&#xff1a;①年龄≥41 岁&#xff1b;②肥胖&#xff1b;③妊娠&#xff1b;④盆腔手术或关节置 换手术&#xff1b;⑤急诊剖腹产手术&…

java环境配置—配置Tomcat8环境

先安装JDK&#xff0c;配置好jdk环境后再配置Tomcat 8配置环境变量&#xff1a;TOMCAT_HOME&#xff1a;D:\Program Files\apache-tomcat-8.0.28  CATALINA_HOME:D:\Program Files\apache-tomcat-8.0.28  CATALINA_BASE:D:\Program Files\apache-tomcat-8.0.28修改CLASSPAT…

加密解密_作业-加密解密程序

# 加密解密程序作业&#xff1a;自己写一个加密程序&#xff0c;能够加密的内容是英文和汉字。同时加密并且解密就是说&#xff0c;一段话中既有中文又有英文&#xff0c;标点符号不用处理。加密规则&#xff0c;获取ascii码数字&#xff0c;中间用|分割# 思路提示&#xff1a;…

详解Objective-C中委托和协议

Objective-C委托和协议本没有任何关系&#xff0c;协议如前所述&#xff0c;就是起到C中纯虚类的作用&#xff0c;对于“委托”则和协议没有关系&#xff0c;只是我们经常利用协议还实现委托的机制&#xff0c;其实不用协议也完全可以实现委托。 AD&#xff1a;【活动】Web和AP…

svn拉取文件合并_SVN分支(branches)合并(merge)到主干(trunk)和拉取分支(tag)

在一个团队协作且不断迭代更新的项目开发中&#xff0c;经常会使用到svn的一些分支主干的方法&#xff0c;这样的好处是使得各个版本之间可独立开发&#xff0c;大多数情况下是branch分支主要用来开发新的功能和版本迭代&#xff0c;主干上面及时快速的修复线上的一些bug和优化…