应朋友邀请,搭建一个maven私服,搭建过程中遇到诸多问题。一一解决之后决定还是简单写一个学习总结。
废话不多说,开始进入正题。
参考一些文档操作,总体感觉搭建私服并不难,难在对里面概念的理解,那就扫盲一些基本概念。
项目构建过程:
Maven的作用:
主要是用来解决依赖管理和项目信息管理,使用maven可以高度自动化构建项目,跨平台,可重用组件。
Maven约定项目结构:
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
Maven依赖管理流程:
使用maven 构建项目,首先会从本地Maven仓库查找相关jar包,一般存在&{user}/.m2/repository 下,可以通过setting文件修改本地仓库地址。如果找不到 ,会访问远程的仓库地址,下载依赖,然后保存到本地仓库。
使用Maven私服,如果本地找不到会查找私服上是否存在,如果存在,则会下载保存到本地仓库。不存在会继续查找远程仓库。起到一个代理的作用,可以解决公网不存在的jar包依赖(比如自己公司提供的jar)。解决一些不给开发提供外网访问公司的需求。重要的是可以缓解外网的带宽。
简单扫描一下,开始进入安装私服的介绍。网上大部分是Nexus,借鉴众多。Nexus下载地址http://www.sonatype.org/nexus/go
找到Nexus Repository Manage OSS 最新版本如下,由于实验机器是Linux,所以选择第三个。
下载解压 ,目录结构如下图,
进入nexus-3.14.0-04/bin目录 运行
访问地址为本地ip加默认端口8081,可通过etc目录下的nexus-default.properties 修改端口和nexus-context-path
页面访问如下图 默认用户admin 默认密码admin123
进入后点击设置 Repository 可以看到默认的几个仓库 type类型有一下几种分别做一下简单介绍
1.group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
2.hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);
3.proxy(代理类型):从远程中央仓库中寻找数据的仓库。
通过点击Create repository 可以创建自己的仓库,选择Maven hosted类型,Version policy 选择Release(发布版本)
Snapshot为快照版本,开发过程中使用,policy可以限制类型,对应pom.xml中的坐标version。Mixed 为不限制,两者都可以保存。Deployment policy 选择 Allow redeploy。 然后就建立了自己Repository。
下面介绍一下实际使用过程
上传私服jar包 创建工程,写一个简单的测试类 并打包成jar包
选择Browse Upload 点击自己创建的仓库,选择jar包 填写坐标。
然后再Browse中可以看到上传的jar包。
将自己创建的仓库添加到group类型的Maven-public 仓库下。按顺序执行 设置-RepoRepositories -maven-public
通过maven私服使用管理jar依赖
创建另一个工程,配置pom文件 选择使用maven私服地址的仓库maven-public
使用简单测试类测试
忽略了一些使用细节 和jar包的其他上传方式。介绍了一下简单流程,毕竟只是工具,简单了解一下流程,具体到有机会使用再做一下深入细节研究。