maven搭建私服(nexus使用)
来源:互联网 发布:自己做斗图的软件 编辑:程序博客网 时间:2024/06/05 08:26
1、介绍
maven在实际使用中使用最多的是依赖管理工具,从中央仓库中下载包到本地仓库中,并在pom文件中引入依赖的jar包,那么在项目中就可以使用了。而每个公司不同部门,部门中的不同项目组,都会发布自己的项目,或者使用其他项目组发布的项目,如何统一管理公司内部各个项目之间的依赖关系呢?这样就引入了私有服务器,即公司内部所有部门,所有项目组都将项目发布到统一的服务器上供大家使用。
参考文献:http://blog.csdn.net/shenshen123jun/article/details/9084293
2、nexus安装
本文使用windows64位版本的nexus。
下载地址:https://www.sonatype.com/download-oss-sonatype
安装完成后,会弹出nexus的主页面如下图所示:
访问地址:http://localhost:9555/nexus/#welcome,其中9555为安装时设置的端口号。
点击右上角的Log in登陆,默认用户名和密码为admin/admin123。
3、nexus介绍
登陆成功后,进入nexus的主页面,如下图所示,点击左边的Repositories导航栏可看到nexus已经配置好的一些仓库类。
图中重要部分介绍:
Type :仓库的类型,如proxy代理仓库,group组仓库,hosted宿主仓库
Format :是支持maven1 还是maven2 还是其他格式
Policy :支持快照版本还是发布版本
Repository Path :这个就是仓库地址
常用的仓库类型有hosted、proxy、group这三种,仓库种类解释如下:
proxy :代理仓库,即为代理下载依赖的仓库,如Central从中央仓库寻找依赖。
hosted:宿住仓库,该类型可以建立如Snapshot、release的仓库。其中3rd party 为第三方依赖的仓库,即不能通过Central下载的依赖,都可以通过自行下载jar包,并上传到仓库,供大家使用。
group:组仓库,可将其它类型的仓库放在一个组中统一管理,由外部人员调用;
4、搭建私服
4.1 下载索引
搭建私服之前需要将中央仓库的依赖下载到本地私有仓库中,nexus默认是不自动下载的,这里我们需要配置一下。
首先选中Central仓库,在Configuration配置中,将Download Remote Indexes的属性设置为true,最后再点击Central仓库,右键,点击Repair index,这样会在后台生成一个任务,自动下载索引了。
后台任务查看,任务在运行中。
4.2、 创建SNAPSHOT的hosted类型的仓库
点击add按钮,选择Hosted Repository,下方出现填写配置信息,将红框中选中的配置完成后,点击保存,snapshot仓库创建完成。
4.3、创建release的hosted类型的仓库
release仓库与上面的类似。
4.4、创建GROUP类型的仓库
group组仓库创建不一样,需要选择Repository Group选项,且在设置时,Ordered Group Repositores需要配置,将quark-snapshot、quark-release、Central、3rd party包含在内,即该组包括内部发布的快照、正式版本、从远程仓库下载的依赖、以及第三方依赖。其中3rd party添加之前,需要将3rd party从Public Repositories maven公共仓库中去除掉。
这样内部的仓库创建完成了,最后可看到如下图所示:
5、配置用户
5.1、配置权限
首先为snapshot 和 release 配置权限,配置过程如下,这里只演示release的配置过程。
两个都配置完成后,可以查看,如下图:
5.2、配置角色
点击add新增权限,出现如下图:
若下图中并未出现你配置的权限,请重启nexus就可以出现下图。
5.3、配置用户
点击add时,填出如下页面,并筛选出上面配置的quark-role角色:
如上公司内部私服配置完成,下面将介绍在项目中使用私服,以及发布项目到私服中。
6、使用私服
首先需要在settings配置文件中加入如下配置:
配置镜像文件路径:
7、发布项目
发布项目需要配置权限和发布管理配置:
在settings中servers中添加访问权限:
在项目pom中,增加如下配置:
配置完成后,就可以使用命令 mvn deploy 发布项目到服务器了,发布项目到nexus私服中,maven会根据version的后缀检查是发布到snapshot还是release中,若未加后缀,则会发布到release中。
8、问题
我在发布中出现了一个问题,纠结了很久才解决问题,背景是本机有三个工作空间,两个开发工具myeclipse 和 eclipse,都使用同一maven,每一个项目都复制了一份settings文件,使用单独的配置,但是在发布项目时总是报无权限,最后在网上搜索终于定位到问题,因为我项目的settings文件的权限配置server并未生效,最后将server放置到了maven项目下的settings文件中,这样才发布成功。
解决方式:
参考文献地址:http://www.trinea.cn/dev-tools/maven-sonatype-nexus-return-401-which-settings-xml-maven-is-using/
使用maven-help-plugin,一个小巧的辅助工具
1、mvn help:system可以打印所有可用的环境变量和Java系统属性
2、mvn help:effective-pom用于查看当前生效的POM内容,指合并了所有父POM(包括Super POM)后的XML,所以可用于检测POM中某个配置是否生效
3、mvn effective-settings可用于查看当前生效的settings.xml文件内容,所以可用于判断某个settings配置是否生效
- maven搭建私服(nexus使用)
- 使用Nexus 给maven 搭建私服
- 使用nexus为maven搭建私服
- maven项目--使用nexus搭建私服
- Maven教程-使用Nexus搭建私服
- maven 使用nexus 搭建私服
- Maven教程-使用Nexus搭建私服
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- maven--私服的搭建(Nexus的使用)
- 嵌入式 Linux 中自定义 reboot / poweroff 行为
- Android 内存泄漏总结
- spinlock与linux内核调度的关系
- Android第三方集成之百度地图定位
- 文件压缩项目的有关问题
- maven搭建私服(nexus使用)
- 小胖说swift07-------- swift协议代理的使用以及解决循环引用问题
- 高德地图Js API的使用
- C++时时读取txt文件
- pt-query-digest用法
- 第9个python程序:打印,打印,打印
- git 命令行菜鸟必看
- linux 下 apache启动、停止、重启命令
- 用户态spinlock