码迷,mamicode.com
首页 > 其他好文 > 详细

Maven篇----01 简介和私服

时间:2020-06-20 00:52:38      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:maven坐标详解   ext   开发   jdk   conf   阶段   事件   管理   alt   

1. Maven简介

1.1. 简述

  Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
  Maven是优秀的依赖管理工具,能轻松地解决繁杂的Java类库的依赖关系。
  Maven是标准化的构建流程。Maven暴露了一组一致、简洁的操作接口,能帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来,使用Maven现有的成熟的、稳定的组件也能简化构建系统的复杂度。
  Maven是项目信息管理工具,能有效管理原本分散在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址等。另外还能通过Maven自动生成项目站点、项目文档、测试报告等非常具有价值的项目信息。

1.2. Maven实现的核心价值

1.简单:使用简洁、一致的操作接口,进行快速的项目构建,随时随地的地从源代码构建出最终的产品。
2.促进团队成员的交流与反馈:与版本控制系统结合后,所有人都能执行最新的构建并快速得到反馈。自动生成的项目报告也能帮助成员了解项目的状态,促进团队的交流。
3.测试驱动开发(TDD):测试是Maven生命周期中最重要的组成部分之一,并且Maven有现成的成熟插件支持业界流行的测试框架,如Junit和TestNG。
4.持续集成(CI):CI的前提是源码管理系统和构建系统,使用Maven后,持续集成会变得更加方便。
5.富有信息的工作区:使用Maven发布的项目报告站点,并配置你需要的项目报告,如测试覆盖率报告,都能帮你把信息推送到开发者眼前。

1.3. Maven坐标

在开发Maven项目的时候,需要为其定义适当的坐标,这是强制要求的。在这个基础上,其他Maven项目才能应用该项目生成的构件。?
Maven坐标详解:
 groupId:组织标识(包名)
 artifactId:项目名称
 version:项目的当前版本
 packaging:项目的打包方式,最为常见的jar和war两种,默认jar

2. Maven仓库

Maven 仓库能帮助我们管理构件(主要是JAR),分两类:本地仓库和远程仓库。
  本地仓库,缺省地址为${user.home}/.m2/repository(即一个用户对应拥有一个本地仓库)。在Maven主目录下修改setting.xml配置可以修改本地仓库地址。
  而远程仓库又分为中央仓库、其他远程仓库和私服(私有服务器)。中央仓库是由Maven社区官方提供的,其中包含了大量常用的库。社区提供了一个 URL。用于搜索所有可以获取的代码库。

2.1.私服简介

  私服是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
  私服的好处:
a、节省自己的外网带宽
b、加速Maven构建
c、部署自己内部的第三方构件
d、提高稳定性,增强控制
e、降低中央仓库的负荷。
Nexus作为私服,提供强大的仓库管理、构件搜索等功能。Nexus内部使用Jetty作为服务器,界面用extjs开发的。

2.2.私服安装

a). 准备包
Nexus-2.11.4-01-bundle: 下载地址
JDK 1.8版本: 配置好环境变量,注意得是1.8版本
Apache Maven 3.5.4

b). 安装

# tar -zvxf nexus-2.11.4-01-bundle.tar.gz 
# mv nexus-2.11.4-01-bundle /data/nexus/nexus
# cd /data/nexus/nexus/bin
# ./nexus

注意:默认不能用root用户启动Nexus

c). 验证使用
访问地址:http://localhost:8081/nexus(默认账户:admin 密码:admin123)

技术图片

2.3.Nexus仓库说明

  Nexus默认内置了很多仓库,可划分为4种不同类型:hosted(宿主仓库) 内部项目的发布仓库;proxy(代理仓库) 用于代理远程的公共仓库;group(仓库组);virtual(虚拟仓库)。

  Nexus会创建两个目录:一个目录包含运行环境及应用,为nexus;一个目录包含所有的配置和数据,为sonatype-work/nexus。升级nexus时只需要替换nexus目录,保留sonatype-work/nexus目录下所有配置和仓库。

2.4.Nexus仓库目录

Nexus仓库文件保存在sonatype-work路径下,路径为${sonatype-work}/nexus/,具体说明如下:

nexus
├── backup                  如果创建了定时备份配置文件的任务,该目录会定期产生包含了配置文件快照的ZIP压缩文件。每个压缩包都包含了conf/目录。
├── conf                    该目录包含了所有配置。管理着仓库列表、日志配置,以及安全设置。
│   ├── capabilities.xml    进一步的Smart Proxy后端配置
│   ├── logback-nexus.xml   日志配置文件。用于定制日志信息的细节、频率,或者将日志输出到自己定制的输出源,配置在logback-nexus.xml文件中。
│   ├── logback.properties
│   ├── logback.xml         
│   ├── lvo-plugin.xml      包含最新版本插件的配置。该xml文件存储了仓库管理用于查询检查更新版本的属性文件的位置。
│   ├── nexus.xml           该文件维护着仓库的列表以及所有服务器层面的配置,例如STMP配置、安全方面的、仓库组、targets、路径映射等等。
│   ├── security-configuration.xml      总体的安全配置
│   ├── security.xml        用户及权限的安全配置
├── db                      如果开启了相关功能,将会存储用户token相关信息。
├── felix-cache             存储OSGiframework Apache Felix的缓存,该框架用于仓库管理的插件体系。
├── health-check            存放缓存了的健康检查报告,报告由仓库健康检查插件产生。
├── indexer                 包括了所有管理下的仓库及仓库组的索引。索引是一个全文搜索引擎,用于搜索和索引Maven仓库。仓库管理为所有仓库维护着一个本地索引,也可以从远程仓库下载索引。
├── logs                    目录下存放着nexus.log文件。该文件包含了一个仓库管理运行实例等信息。
├── nexus.lock
├── nuget                   Containsthe database supporting queries against NuGet repositories used for .NETpackage support.
├── plugin-repository       该目录包含了所有第三方安装的插件
├── storage
│   ├── apache-snapshots    (proxy-代理仓库),查找Apache项目的快照版本的仓库,地址:https://repository.apache.org/snapshots/
│   ├── central             (proxy-代理仓库),代理中央仓库,地址:http://repo1.maven.org/maven2/
│   ├── central-m1          (virtual-虚拟仓库),兼容Maven1 版本的jar或者插件
│   ├── codehaus-snapshots  (proxy-代理仓库),查找codehaus项目的快照版本的仓库
│   ├── public              (group-仓库组)
│   ├── releases            (hosted-宿主仓库),存储公司内部发布版本releases构件。
│   ├── snapshots           (hosted-宿主仓库),存储公司内部测试版本snapshots构件。
│   ├── thirdparty          (hosted-宿主仓库),发布第3方jar包的仓库,如oracle数据库驱动等
└── timeline                存储着仓库管理用来存储事件及其他信息以支持内部操作的索引。用户界面通过系统展示这些内容。

Maven篇----01 简介和私服

标签:maven坐标详解   ext   开发   jdk   conf   阶段   事件   管理   alt   

原文地址:https://www.cnblogs.com/liuyitan/p/12995689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!