搭建Maven私服那点事

摘要:本文主要介绍在CentOS7.1下使用nexus3.6.0搭建maven私服,以及maven私服的使用(将自己的Maven项目指定到私服地址、将第三方项目jar上传到私服供其他项目组使用)

一、简介

  Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件, 可以方便更灵活的控制项目, 开发人员的主要任务应该是关注商业逻辑并去实现它, 而不是把时间浪费在学习如何在不同的环境中去依赖jar包,项目部署等。
maven和ant都是软件构建工具(软件管理工具),maven比ant更加强大,已经取代了ant,jar包的声明式依赖描述。maven有jar包的仓库。svn是一个软件的版本控制工具,是一个协同开发工具。svn的仓库存放的是项目的源码,历史版本的备份,声明每次版本的修改情况。

二、私服应用场景

有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。
如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。总归主要是两点:

1、自己maven私服更容易维护,公司开发从maven私服迁出jar到本地仓库更快

2、有些公司未开放外网给开发人员

三、部署Nexus

3.1 部署环境

3.2 配置Maven

 下载解压

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
tar -zxvf apache-maven-3.5.2-bin.tar.gz
mv apache-maven-3.5.2 /usr/local/maven3.5

配置环境变量

 vim /etc/profile

  在最末尾加上

#maven
MAVEN_HOME=/usr/local/maven3.5
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

  然后再使用下面命令使配置生效

source /etc/profile

  查看是否生效

3.3 部署Nexus3.6.0

下载解压

tar -zxvf apache-maven-3.5.2-bin.tar.gz
mv nexus-3.6.0-02 /usr/local/
cd /usr/local/nexus-3.6.0-0.2/bin

启动

./nexus start

查看日志

到这一步,我们的nexus就算配置成功了,图中这并不影响使用nexus

四、上传本地jar包到maven私服

现在我们来介绍怎么把本地的maven项目jar包提交到maven私服上,供其他开发人员使用

4.1 创建一个maven仓库

首先点击Security>Users 创建一个用户,我这里测试创建的用户/密码是:deployment/deployment,因为后面提交本地项目jar到私服仓库会用到

然后点击,设置>Repository>Repositories>Create repository>maven2(hosted)创建maven项目,注意Deployment policy一定要设置成allow redeploy

上面提到了我们要创建一个maven2(hosted)项目,那这里为什么是创建maven2(hosted)项目,不是创建其他的项目呢,接下来我们进行介绍respository

4.2 respository介绍

proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用;
Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里;
Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。

4.3 使用eclipse批量提交jar到maven私服

首先设本地maven的settings.xml配置问价,在servers标签里添加用户密码支持

<server><id>jeecg</id><username>deployment</username><password>deployment</password>
</server>

然后再项目的pom.xml添加远程发布的私服仓库地址

<distributionManagement>  <repository>  <id>jeecg</id>  <name>jeecg Repository</name>  <url>http://172.16.4.166:8081/repository/jeecg/</url>  </repository>  
</distributionManagement> 

最后利用eclipse进行上传,步骤如下图

我们在console打印成功并在Nexus 私服上可以查看得到上传成功,如下图:

在nexus管理页面查看刚刚上传的jar包信息

至此,我们的项目jar包提交到私服完成

五、指定maven地址下载jar包到本地

上面的我们提交了jar包到maven私服,现在迁出jar包时填写那个maven私服地址,看是否能迁出jar包

首先,将项目pom.xml文件的repositories标签里添加上

<repository><id>jeecg</id><name>jeecg Repository</name><url>http://maven.jeecg.org/nexus/content/repositories/jeecg</url><snapshots><enabled>false</enabled>
</repository>

然后再maven的settings.xml文件中配置本地仓库地址

 <localRepository>D:\mave_responsity</localRepository>

之后我们就可以迁出这些war包到我们配置的本地仓库了

 

 至此,大功告成!!!

  

 

转载于:https://www.cnblogs.com/zishengY/p/7794923.html

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

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

相关文章

lee最短路算法_Lee算法的解释:迷宫运行并找到最短路径

lee最短路算法Lee算法是什么&#xff1f; (What is the Lee Algorithm?) The Lee algorithm is one possible solution for maze routing problems. It always gives an optimal solution, if one exists, but is slow and requires large memory for dense layout.Lee算法是迷…

gan训练失败_我尝试过(但失败了)使用GAN来创作艺术品,但这仍然值得。

gan训练失败This work borrows heavily from the Pytorch DCGAN Tutorial and the NVIDA paper on progressive GANs.这项工作大量借鉴了Pytorch DCGAN教程 和 有关渐进式GAN 的 NVIDA论文 。 One area of computer vision I’ve been wanting to explore are GANs. So when m…

怎么样实现对一个对象的深拷贝

问题&#xff1a;怎么样实现对一个对象的深拷贝 使用深拷贝的方法有点难实现啊。要保证原来的对象和克隆对象不是共享同一个引用的步骤是什么啊&#xff1f; 回答一 一种安全的方法是先序列化对象&#xff0c;然后反序列化。这保证了所有东西都是一个新的引用。 这里有一篇…

19.7 主动模式和被动模式 19.8 添加监控主机 19.9 添加自定义模板 19.10 处理图形中的乱码 19.11 自动发现...

2019独角兽企业重金招聘Python工程师标准>>> 19.7 主动模式和被动模式 • 主动或者被动是相对客户端来讲的 • 被动模式&#xff0c;服务端会主动连接客户端获取监控项目数据&#xff0c;客户端被动地接受连接&#xff0c;并把监控信息传递给服务端 服务端请求以后&…

Codeforces Round #444 (Div. 2) C.Solution for Cube 模拟

向题解低头&#xff0c;向大佬低头(。﹏。)orz……模拟也不能乱模啊……要好好分析题意&#xff0c;简化简化再简化orz敲黑板 六个面的魔方&#xff0c;能一步还原的情况一定是只有2个面是单色&#xff0c;其余四个面&#xff0c;每个面2种颜色&#xff0c;而且不会出现任意两面…

fcc认证_介绍fCC 100:我们对2019年杰出贡献者的年度总结

fcc认证2019 has been a big year for the global freeCodeCamp community.对于全球freeCodeCamp社区来说&#xff0c;2019年是重要的一年。 More people are answering questions on the forum. 越来越多的人在论坛上回答问题。 Our publication has several new, rising aut…

华盛顿特区与其他地区的差别_使用华盛顿特区地铁数据确定可获利的广告位置...

华盛顿特区与其他地区的差别深度分析 (In-Depth Analysis) Living in Washington DC for the past 1 year, I have come to realize how WMATA metro is the lifeline of this vibrant city. The metro network is enormous and well-connected throughout the DMV area. When …

Windows平台下kafka环境的搭建

近期在搞kafka&#xff0c;在Windows环境搭建的过程中遇到一些问题&#xff0c;把具体的流程几下来防止后面忘了。 准备工作&#xff1a; 1.安装jdk环境 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.下载kafka的程序安装包&#xff1a; http://kafk…

deeplearning.ai 改善深层神经网络 week2 优化算法

这一周的主题是优化算法。 1. Mini-batch&#xff1a; 上一门课讨论的向量化的目的是去掉for循环加速优化计算&#xff0c;X [x(1) x(2) x(3) ... x(m)]&#xff0c;X的每一个列向量x(i)是一个样本&#xff0c;m是样本个数。但当样本很多时&#xff08;比如m500万&#xff09…

gcc汇编汇编语言_什么是汇编语言?

gcc汇编汇编语言Assembly Language is the interface between higher level languages (C, Java, etc) and machine code (binary). For a compiled language, the compiler transforms higher level code into assembly language code.汇编语言是高级语言(C &#xff0c;Java等…

铺装s路画法_数据管道的铺装之路

铺装s路画法Data is a key bet for Intuit as we invest heavily in new customer experiences: a platform to connect experts anywhere in the world with customers and small business owners, a platform that connects to thousands of institutions and aggregates fin…

leetcode421. 数组中两个数的最大异或值(贪心算法)

给你一个整数数组 nums &#xff0c;返回 nums[i] XOR nums[j] 的最大运算结果&#xff0c;其中 0 ≤ i ≤ j < n 。 进阶&#xff1a;你可以在 O(n) 的时间解决这个问题吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;nums [3,10,5,25,2,8] 输出&#xff1a;28 解…

IBM推全球首个5纳米芯片:计划2020年量产

IBM日前宣布&#xff0c;该公司已取得技术突破&#xff0c;利用5纳米技术制造出密度更大的芯片。这种芯片可以将300亿个5纳米开关电路集成在指甲盖大小的芯片上。 IBM推全球首个5纳米芯片 IBM表示&#xff0c;此次使用了一种新型晶体管&#xff0c;即堆叠硅纳米板&#xff0c;将…

drop sql语句_用于从表中删除数据SQL Drop View语句

drop sql语句介绍 (Introduction) This guide covers the SQL statement for dropping (deleting) one or more view objects.本指南介绍了用于删除(删除)一个或多个视图对象SQL语句。 A View is an object that presents data from one or more tables.视图是显示来自一个或多…

async 和 await的前世今生 (转载)

async 和 await 出现在C# 5.0之后&#xff0c;给并行编程带来了不少的方便&#xff0c;特别是当在MVC中的Action也变成async之后&#xff0c;有点开始什么都是async的味道了。但是这也给我们编程埋下了一些隐患&#xff0c;有时候可能会产生一些我们自己都不知道怎么产生的Bug&…

项目案例:qq数据库管理_2小时元项目:项目管理您的数据科学学习

项目案例:qq数据库管理Many of us are struggling to prioritize our learning as a working professional or aspiring data scientist. We’re told that we need to learn so many things that at times it can be overwhelming. Recently, I’ve felt like there could be …

react 示例_2020年的React Cheatsheet(+真实示例)

react 示例Ive put together for you an entire visual cheatsheet of all of the concepts and skills you need to master React in 2020.我为您汇总了2020年掌握React所需的所有概念和技能的完整视觉摘要。 But dont let the label cheatsheet fool you. This is more than…

leetcode 993. 二叉树的堂兄弟节点

在二叉树中&#xff0c;根节点位于深度 0 处&#xff0c;每个深度为 k 的节点的子节点位于深度 k1 处。 如果二叉树的两个节点深度相同&#xff0c;但 父节点不同 &#xff0c;则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root &#xff0c;以及树中两个…

Java之Set集合的怪

工作中可能用Set比较少&#xff0c;但是如果用的时候&#xff0c;出的一些问题很让人摸不着头脑&#xff0c;然后我就看了一下Set的底层实现&#xff0c;大吃一惊。 ###看一个问题 Map map new HashMap();map.put(1,"a");map.put(12,"ab");map.put(123,&q…

为mysql数据库建立索引

前些时候&#xff0c;一位颇高级的程序员居然问我什么叫做索引&#xff0c;令我感到十分的惊奇&#xff0c;我想这绝不会是沧海一粟&#xff0c;因为有成千上万的开发者&#xff08;可能大部分是使用MySQL的&#xff09;都没有受过有关数据库的正规培训&#xff0c;尽管他们都为…