如何同步Maven的maven搭建本地仓库库到私服中

maven-nexus中添加本地仓库
maven-nexus中添加本地仓库
之前也一个博客提到如何搭建maven-nexus并安装索引,但是存在一个问题就是其内部没有jar包,需要使用是要从远程仓库中下载,这样速度就会很慢,开这个博客就是为大家解决本地仓库的问题,本地仓库是我日常收藏的,在网上应该也能找到,就不多说了。下面就开始说明导入本地仓库的方法。
注:这里是直接在已经安装的maven-nexus中导入本地仓库,具体maven-nexus的安装过程看我上一个博客:。
第一步:对仓库进行打包,具体打包的方式在下图中已经说明
第二步:上传打包好的本地仓库并解压
[ucenter@millery central]$ tar -zxvfrepository.tar.gz
第三步:解压后启动maven-nexus服务
这里我之前是在开启状态,所有要停止,如果本来就是停止状态,只需要直接启动就好。
drwxrwxr-x. 8 ucenter ucenter 4096 9月& 29 2014 nexus-2.10.0-02
drwxrwxr-x. 3 ucenter ucenter 4096 9月& 29 2014 sonatype-work
[ucenter@millery maven-nexus]$ cdnexus-2.10.0-02/bin/
[ucenter@millery bin]$
[ucenter@millery bin]$ ./nexus
Usage: ./nexus { console | start | stop |restart | status | dump }
[ucenter@millery bin]$ ./nexus stop
Stopping Nexus OSS...
Waiting for Nexus OSS to exit...
Waiting for Nexus OSS to exit...
Waiting for Nexus OSS to exit...
Stopped Nexus OSS.
[ucenter@millery bin]$ ./nexus start
Starting Nexus OSS...
Started Nexus OSS.
[ucenter@millery bin]$
第四步:外部访问测试
第五步:自动下载和更新索引设置
上面的步骤并不难,希望对大家有所帮助。
我的热门文章
即使是一小步也想与你分享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"&
&D:/DevelopTools/server/maven/mavenRepository&
&MyRepository&
&http://182.92.231.85/nexus/content/groups/public&
&MyRepository&
&http://central&
&http://central&
以上配置是在 .m2文件夹中的settings.xml文件。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:32062次
积分:1385
积分:1385
排名:千里之外
原创:108篇
转载:18篇40903人阅读
和注意的问题
私服是什么
私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是。默认端口8081,这里我选择最新版nexus-2.5.0-04。
Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123.
最频繁的就是点击左侧菜单栏的按钮
一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。
hosted & 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
proxy & 类型的仓库,从远程中央仓库中寻找数据的仓库
group & 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
maven项目索引
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能
保存后后台会运行一个任务,点击菜单栏的选项即可看到有个任务在RUNNING。&下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。例如spring-core
就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息
指定插件仓库
这样只有本项目才在私服下载组件
这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settings.xml文件。
修改settings.xml为
追加激活profile
之后所有本机的Maven项目就在私服下载组件。(这样比较好)
项目的发布
注意配置了还是发布项目到私服失败,原因为没有权限,会出现401错误码,原因就是权限不够。
配置权限在settings.xml
注意Respository中的id一定要和server下的id一致,切记!!否则出现权限问题。
然后运行发布
clean deploy
在控制台发布成功
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目
宿主库——3rd party
假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd
party,之后选择Artifact Upload上传至宿主空间。
最后点击上传
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(1)(2)(1)(2)(8)(2)(3)
访问:68730次
排名:千里之外
转载:10篇> learn_more的博客详情
摘要: 项目构建工具Maven的学习笔记,主要讲解Maven 的仓库、镜像 相关信息
1、仓库中jar包定位
& & 在maven世界中任何一个依赖、插件或者项目构建的输出都可以称为构件,任何一个构件都有一个坐标作为唯一的标识。
这个坐标就是:group、artifactId、version;根据这个坐标就可以定义其在仓库的唯一存储路径,那么就可以在项目中引用。
&&&&&groupId&junit&/groupId&
&&&&&artifactId&junit&/artifactId&
&&&&&version&4.10&/version&
2、Maven仓库原理
& & Maven仓库是基于简单文件系统存储的,只要在文件系统中没有发现相关的文件,说明这几依赖并不存在,因此,我们很容易在本地仓库查找具体的依赖是否存在。
3、仓库的分类信息(本地仓库、远程仓库)
& & 1)本地仓库就是我们自己机器上的文件系统,所以他是唯一的,项目构建时首先在本地仓库查找依赖,如果本地没有依赖时才会去寻找远程仓库。
& & 2)远程仓库指的是非本地的其他所有仓库,中央仓库、私服等都是远程仓库的一种。如果本地仓库没有项目构建需要的构件,你们就会从远程仓库下载,可是远程仓库如果也没有的话,你们就会项目报错。
4、本地仓库设置
&localRepository&D:\Program Files\apache-maven-3.2.2-repository&/localRepository&
安装的时候有个一conf/settings.xml文件,这个文件时全局控制文件,另外,还有一个就是C:\Users\Heweipo\.m2 下面也会有一个settings.xml文件,这个代表的是个人局部配置文件,然而,我们使用Eclipse默认采用这个settings.xml文件,可以通过如下截图修改:
5、中央仓库
& & Maven必须知道至少一个可用的远程仓库,才能执行Maven命令的时候下载到需要的构件。中央仓库就是这样一个默认的远程仓库,Maven安装文件自带远程仓库的位置是
具体中央仓库在settings.xml文件的配置如下:
&&&&&repositories&
&&&&&&&&&&&&repository&
&&&&&&&&&&&&&&&&&&&&&&id&central&/id&
&&&&&&&&&&&&&&&&&&&&&&name&Central&Repository&/name&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&url&http://repo.maven.apache.org/maven2&/url&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&layout&default&/layout&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&snapshots&
&&&&&&&&&&&&&&&&&&&&&&&&&&enabled&true&/enabled&
&&&&&&&&&&&&&&&&&&&&&&&&&&updatePolicy&always&/updatePolicy&
&&&&&&&&&&&&&&&&&&&&&&&&&&checksumPolicy&always&/checksumPolicy&
&&&&&&&&&&&&&&&&&&&&&&/snapshots&&
&&&&&&&&&&&&&/repository&&
&&&&&/repositories&
& & 私服是一种特殊的远程仓库,他是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在改构件,则从外部的远程仓库下载,同时缓存在私服之上,然后为Maven下载请求提供服务,另外,对于第三方的jar无法从仓库下载(JDBC驱动)可以从本地上传到私服供客户端下载。
& & 优点主要有:
& & 1)节省外网宽带
& & 2)加速Maven构建
& & 3)部署第三方构件
& & 4)提高稳定性、增强控制:原因是外网不稳定
& & 5)降低中央仓库的负荷:原因是中央仓库访问量太大
7、远程仓库认证
& & 有时候登录一个远程仓库需要用户名和密码进行身份验证,所以,需要远程仓库认证。配置认证信息和配置仓库信息不同,仓库信息可以直接配置POM文件中,但是认证信息必须配置在settings.xml文件中,目的就是安全性。当然,我们可以把仓库信息配置在settings.xml 中,这样的缺点就是好动态控制仓库,但是一般情况下不会改变仓库,我们本地私服一般都是唯一的。
&&&&server&
&&&&&&&id&deploymentRepo_releases&/id&
&&&&&&&username&repouser&/username&
&&&&&&&password&repopwd&/password&
&&&&&/server&
值得注意的是,ID代表的是某个repository元素配置的ID。
8、远程仓库部署
&&distributionManagement&
&&&&&repository&
&&&&&&&&&id&deploymentRepo_releases&/id&
&&&&&&&&&name&Nexus&Release&Repository&/name&
&&&&&&&&&url&http://localhost:8081/nexus/content/repositories/releases/&/url&
&&&&&/repository&
&&&&&snapshotRepository&
&&&&&&&&&id&deploymentRepo_snapshots&/id&
&&&&&&&&&name&Nexus&Snapshot&Repository&/name&
&&&&&&&&&url&http://localhost:8081/nexus/content/repositories/snapshots/&/url&
&&&&&/snapshotRepository&
&/distributionManagement&
我们开发的版本可以通过 mvn deploy 把项目部署到对应的私服上去对于为什么要把发行版本和快照版本分开主要还是为了方便后期项目维护和当时的协同开发。比如发行版本肯定是稳定版,但是他的功能可能没有那么多,对于一些要求稳定的客户就可以给他发行版本;可是对于快照版本来说,是一个正在开发的版本,这个版本可能随时都会被另外一个项目依赖,如果他需要我的功能我就会进行代码提交,也就是部署到私服上去,然而,这个时候Maven就会把我的快照版本做一个时间戳添加在快照版本之后,别人依赖的快照版本也会自动更新为最新的快照版本,这些都是Maven帮我们完成,我们只要项目提交就好。
& & 如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像,某些情况下使用镜像可以提高项目构建效率。
& & settings.xml 中配置镜像
&&&mirrors&
&&&&&mirror&
&&&&&&&id&mirrorId&/id&
&&&&&&&mirrorOf&repositoryId&/mirrorOf&
&&&&&&&name&Human&Readable&Name&for&this&Mirror.&/name&
&&&&&&&url&/repo/path&/url&
&&&&&/mirror&
&&&/mirrors&
镜像的意思是,当你访问mirrorOf的仓库时,就会转到对应的镜像url中请求对应的资源。一般镜像都是和私服结合使用。由于私服可以代理任何外部的公共仓库(包括中央仓库),因此,对于组织内部的Maven用户来说,使用一个私服地址就等于使用了所有需要的外部仓库,这个可以将配置集中到私服,从而简化Maven本身的配置。在这种情况下,任何需要的构件都可以从私服中获得,私服就是所有仓库的镜像。这猴子那个镜像如下配置:
&&&mirrors&
&&&&&mirror&
&&&&&&&id&mirrorId&/id&
&&&&&&&mirrorOf&*&/mirrorOf&
&&&&&&&name&Human&Readable&Name&for&this&Mirror.&/name&
&&&&&&&url&/repo/path&/url&
&&&&&/mirror&
&&&/mirrors&
10 仓库中jar包搜索
& &1)仓库搜索:
&& 2)中央仓库
& & http://repo1.maven.org/maven2/
& & /maven2/
& & http://repository.sonatype.org/content/groups/public/
人打赏支持
码字总数 180642
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。
1.首先确定我们的环境安装好maven,jdk等必须的环境
2.这些都准备好之后,去下载最新版本的nexus&& &下载地址:&
& & 我本地安装的是&nexus-2.2-01-bundle,最新的版本是nexus-2.4.0-09-bundle
3.打开目录nexus-2.4.0-09-bundle\nexus-2.4.0-09\bin\jsw 这个目录下面你会发现有很多系统版本的nexus环境
& &我的电脑是win7 (64)为的系统,所以我选择的是windows-x86-64这个版本,当然可以根据个人的电脑系统选择对应的版本
打开一个版本你会看到如下:
我一般都是将nexus安装成windows服务,所以点击install-nexus.bat这个,访问http://localhost:8081/nexus/&启动后如下页面,在右上角有个Log in 的超链接,点击登录
默认的用户名是 admin 密码是 admin123
&登录后你可以在左侧修改登录信息:
4.接下来,我们配置一下maven的代理服务器(前提是你的电脑不能连接外网,如果可以上外网,这里也没有意思,只是介绍一下)
& &在左侧菜单找到如图:
& 点击查看右边有很多选项,找到这里
添加你的代理服务器就可以了。
&5:接下来,好像这里都不需要怎么配置的,反正我没有用到很多的功能,可能是技术学得不好,不会用,呵呵....
& & &对了,这里还有一个可能需要注意一下的,就是3rd party、Snapshots、Releases这三个,分别用来保存第三方jar(典型的oracle数据库的j驱动包),项目组内部的快照、项目组内部的发布版.
& & &我目前只是用3rd party这个第三方的功能,将maven仓库中没有构件的jar包上传到服务器。如何将第三方的jar上传到nexus上面呢?如下:举例上传oracle的驱动包
那么现在nexus已经安装好,怎么使用上传的jar包吧,很简单的,前提是你已经建立了一个maven的项目。含有pom.xml这个文件,在这个文件中添加如下:
先去服务器看看jar的maven构件
然后在pom.xml中添加如下的本地仓库地址:
&repositories&
&repository&
&id&nexus&/id&
&name&Team Nexus Repository&/name&
&url&http://localhost:8081/nexus/content/groups/public&/url&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&nexus&/id&
&name&Team Nexus Repository&/name&
&url&http://localhost:8081/nexus/content/groups/public&/url&
&/pluginRepository&
&/pluginRepositories&
&dependencies&
&dependency&
&groupId&com.oracle&/groupId&
&artifactId&ojdbc&/artifactId&
&version&10.1.0.2.0&/version&
&/dependency&
&/dependencies&
到此,完成了nexus私服的搭建,项目组开发人员开发时,只要在项目的pom.xml文件中,添加如下pom.xml信息即可获取私服的jar.
如果添加其他的构件时,会先在nexus私服下载好,以后才会下载到本地。以后,如果发现私服已经存在某一jar包,则会直接从私服下载,如果没有再去网络上下载。这就是搭建私服的好处。哈哈........
所以很有必要搭建maven私服。
阅读(...) 评论()

我要回帖

更多关于 maven 同步本地仓库 的文章

 

随机推荐