Maven翻译成中文是“专家、内行”。Maven是Apache组织中一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理的优秀工具。
## 用 nexus 搭建 Maven 私服 ##
Nexus下载地址:http://www.sonatype.org/nexus/archived/
Nexus安装启动与使用
公司内部大部分人的电脑不能访问公网,不能从maven的中央仓库下载依赖,因此找一台有公网权限的机器搭建nexus私服,其他项目组人员连接到这个私服上即可。1.节省了下载jar包依赖的过程,不必每个人都去下载jar包的依赖
软件准备:jdk1.7、maven-3.5.0、Nexus 2.12.0-01
Nexus 2.12.0-01下载
Windows平台下载zip格式 下载nexus-2.12.0-01-bundle.zip解压到本地磁盘
D:\develop\nexus\nexus-2.12.0-01
在D:\develop\nexus\nexus-2.12.0-01\bin\jsw目录下有很多不同的操作系统版本,我的系统是Win7 64位,选择windows-x86-64目录。
windows-x86-64目录说明
console-nexus.bat:命令行方式启动nexus服务器,窗口关闭不会注册为windows服务
install-nexus.bat:将nexus安装成windows服务,开机时自动启动
start-nexus.bat:启动nexus服务,也可以直接在管理-服务中手动启动nexus服务
stop-nexus.bat:停止nexus服务
uninstall-nexus.bat:卸载nexus服务
wrapper.exe:
配置环境变量
NEXUS_HOME= D:\develop\nexus\nexus-2.12.0-01
Path= ;%NEXUS_HOME%\bin\jsw\windows-x86-64
上述步骤成功后,nexus即安装成功,启动服务,在浏览器中访问
http://localhost:8081/nexus/
默认的用户名是 admin 密码是 admin123
到此nexus安装成功。
Nexus用户管理
选择Security-Users添加用户User ID:feiyue 密码:feiyue
填写基本信息,添加角色,选择Nexus Administrator Role管理员角色。
为Nexus配置代理服务器
如果机器通过配置代理才能访问外网,Nexus可以配置代理服务器,选择Administration-Servers,找到如下配置,填写代理信息。
如果Nexus私服所在机器可以直接访问外网,则可以省略这一步 。
配置repository
在Views/Reposities中选择Reposities进行配置
Nexus可以配置3种类型的仓库,分别是proxy、hosted、group
Proxy:远程仓库的代理,比如nexus中配置了一个中央仓库的proxy,当用户向这个proxy请求一个 artifact时,proxy现在本地查找、如果找不到就到远程的中央仓库下载,起到了一个中转的作用。
配置中央库proxy:
需要做的就是把Download Remote Indexes改为true,这样nexus才会从central repository下载索引,才能在nexus中使用artifact search的功能。
Hosted:宿主仓库,用户可以把自己的一些构件部署到hosted中,也可以手动上传到hosted中。比如Oracle的驱动程序ojdbc6.jar在中央仓库找不到,就需要手工上传到hosted中。
配置hosted repository:一般会配置3个hosted repository,分别是3rd party、Snapshots、Releases,分别用来保存第三方jar(典型的比如ojdbc6.jar),项目组内部的快照、项目组内部的发布版
只是Deployment Policy这个选项,一般Snapshots会配置成允许,而Releases和3rd party会设置为禁止
Group:仓库组,在maven中没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,用户就不必在pom中配置多个地址了,只要统一配置group即可。
配置group repository
group其实是一个虚拟的仓库,通过对实体仓库(proxy、hosted)进行聚合,对外暴露一个统一的地址 ,注意放到左边的仓库,才是会被聚合的仓库
仓库搜索服务
常见的几个功能强大的公共Maven仓库搜索服务。
Sonatype Nexus
地址:https://repository.sonatype.org/
Nexus是当前最流行的开源Maven仓库管理软件,提供了关键字搜索、类名搜索、坐标搜索、校验等功 能。
Mvnrepository
界面友好,提供基于关键字的搜索、构件下载、依赖声明代码片段。
中央仓库检索服务
多模块项目构建实战
本章节给出一个含有父项目parent以及一个多模块项目的空框架做为一个maven项目构建的一个实例,该项目的源码我放到了了github上:
github地址:https://github.com/liangpengju/maven_dev
框架中只是展示Maven多模块项目构建的一种方式,没有具体的代码实现,后续有时间会给出一个demo,这里仅供参考交流。
包括了2个项目,一个是parent聚合项目,另外一个是后台管理分模块分层的项目,结构如下图所示。
maven_dev中包含父聚合项目gseem-parent,没有实际的内容,主要是pom.xml文件中集中定义依赖版本号、依赖包管理、插件管理、插件等可以继承的元素。
gseem-manage是一个多模块的聚合项目,包括4个子模块,parent都是gseem-manage
gseem-manage-pojo是项目实体类模块,打包方式为jar
gseem-manage-mapper是项目数据库操作dao模块,对应于mybatis的mapping中的xml文件,打包方式为jar,依赖于gseem-manage-pojo模块
gseem-manage-service是项目业务逻辑服务模块,包括接口和实现,打包方式为jar,依赖于gseem-manage-mapper模块
gseem-manage-web是项目的静态资源、jsp动态页面模块,包括接口和实现,打包方式为jar,依赖于gseem-manage-service模块
这个项目框架做到了依赖库的统一版本管理,分层代码的复用等。
总结
Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理的优秀工具。 本文主要从以下几个方面来对Maven工具的使用进行了讲解:
█ Maven基础环境配置与Maven常用的基本命令。 █ Maven相关的核心概念理论:概念模型、仓库、坐标、依赖管理、聚合与继承。 █ 4种Maven项目的创建方式:手动创建、命令行、Eclipse IDE、Idea IDE. █ POM文件常用配置解析与Setting文件常用配置解析。 █ 使用Nexus搭建Maven私服与仓库搜索服务。 █ 多模块项目构建实战。Maven还有很多其他的功能,可以后续进行探讨。
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2017/11/23 09:23