本文共 5561 字,大约阅读时间需要 18 分钟。
Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件, 可以方便更灵活的控制项目, 开发人员的主要任务应该是关注商业逻辑并去实现它, 而不是把时间浪费在学习如何在不同的环境中去依赖jar包,项目部署等。
maven和ant都是软件构建工具(软件管理工具),maven比ant更加强大,已经取代了ant,jar包的声明式依赖描述。maven有jar包的仓库。svn是一个软件的版本控制工具,是一个协同开发工具。svn的仓库存放的是项目的源码,历史版本的备份,声明每次版本的修改情况。在工作中可能存在有些开发机器不能上网,大量的机器获取jar包会导致公司网络很慢,还有时候公司会自己发布自己的项目版本,其他的项目可能会依赖引用到,所以就需要用到Maven的本地仓库。有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。下面就这个构建本地Maven仓库进行阐述。
一:介绍
Nexus是Maven的仓库管理器,用来搭建一个本地仓库服务器,这样做的好处便于管理,节约网络资源, 速度快,可以通过SNAPSHOT版本控制,开进行模块间的高效依赖开发。二:下载我们从https://www.sonatype.com/download-sonatype-trial来获取最新版本。
这里使用的是nexus-3.11.0-01-win64.zip三:解压 解压到本地后,目录结构。 在bin里我们可以看到nexus.bat。到时候我们可以通过这个命令来安装卸载,启动停止nexus服务。四:配置环境变量
由于是用java开发的。所以需要安装jdk,并配置好java的环境变量,这里就不表了。 新建环境变量Nexus 值为解压的目录 F:\nexus-3.11.0-01\path中加入;%Nexus%\bin
五:安装服务,启动服务
我们先安装服务。 nexus.bat install 这样就可以安装了,提示安装好后。我们可以启动服务。nexus.bat start提示成功后我们可以输入127.0.0.1:8081/nexus可以访问到。
六:使用
在Views/Repositories-->Repositories里进行配置, nexus里可以配置3种类型的仓库,分别是proxy、hosted、group
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列表。不过要注意浏览器缓存。 virtual:也是中央仓库镜像,支持M1老版本在主界面右上角有个Log in。点击这个可以登录。用户名是admin 密码默认的是 admin123
登录后,点击左边Views/Repositores下的Repositories
hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。 group:仓库组,用来合并多个hosted/proxy仓库,多个repository使用资源时,只需引用一个group即可。Central:是Maven的中央仓库,我们这里就那这个举例。
- hosted :宿主仓库 ,该仓库属于该公司私有的
1. 3rd part : 第三方的jar包,但是该jar包没有在中心仓库保存,驱动.jar 2. snapshot :测试版本、镜像版本 easyNet.war 3. release : 发行版本 - proxy : 代理仓库 :代理中心仓库的jar包 - public :仓库组 :虚拟的概念 可以包含其他的仓库选择仓库的类型Repository Policy 是Release 还是Snapshot
下载远程索引文件点击Central这个仓库,然后点击Configration。在Download Remote Indexes改成True保存即可。
由于索引比较大,所以得过段时间才能下载完毕。 Routing选项可以看到当前仓库与远程仓库的状态。并且制定更新频率。将设置好的仓库放进仓库组里。
点击Public Repositories->Configuration将Central放到左边即可。
七:配置Maven
打开settings.xml配置文件。
在<mirror>节点配置如下即可
添加账号密码nexus * Human Readable Name for this Mirror. http://127.0.0.0:8081/nexus/content/groups/public/
releases admin admin123 snapshots admin admin123
八:使用myeclipse上传
pom.xml,进行如下配置。
snapshots http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/ releases http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/
右键这个项目,run as -> maven build ,然后输入clean deploy进行部署。
九:从私服下载(引用)jar包
在pom.xml中进行如下配置。
pig pig 0.12.1 true public public http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/ never true public public http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/
附settings.xml文件如下:
nexus-realease admin admin123 nexus-snapshots admin admin123 nexus * Nexus http://localhost/nexus-2.11/content/groups/public/ nexus central Nexus http://central true true central Nexus http://central true true jdk-1.7 true 1.7 1.7 1.7 1.7 nexus
转载地址:https://kevin.blog.csdn.net/article/details/80196151 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!