项目管理工具Maven(一)基础知识

  1. 阐述
    2**pom.xml 详解**
  2. maven 版本控制
  3. 私库(私服)介绍
  4. 和maven类似的项目构建工具

阐述

是一个项目对象模型,用来构建整个项目和对象管理

pom.xml 详解

特征

一个项目以group:artifactId :version  成为一个唯一的项目

group

项目标示的约定,它以创建这个项目的组织名称的逆向域名

可以有.号;例如 以org.apache开头的groupId

artifactId

在geoupId 下的一个单独项目标识符,不要在artifactId 中有.号

version

版本号,打包项目时会出现在项目名称后面

packaging

项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用。

classifier

分类器 需要把一个项目,生成两个版本的

发布版本

SNAPSHOT 意为快照,当前版本是开发版本

LATEST 指某个特定构件的最新发布,这个发布可能是一个发布版,也可能是一个snapshot版,具体看哪个时间最后。

RELEASE 说的是最后一个版本

compile
编译范围

runtime

运行时范围

maven 的组成

可以把项目分成几个部分,项目源代码 main/java 单元测试用例,text/java ,依赖的插件 Maven Dependencies

maven的多项目管理

父子项目模式,子项目pom.xml 里继承父项目信息

继承不是唯一的配置文件共用方式,

属性

maven 版本控制

1、解读 1.2.3-beat-4.jar 包名分析

“ 1 ” : 表示该版本的第一个重大版本

“ 2 ” : 表示这是基于重大版本的第二个次要版本

“ 3 ” : 表示该次要版本的第三个增量

” beat-4” : 表示该增量的一个里程碑

2、主干、分支、标签

主干:项目的主体,从初始到当前项目的活动状态, 从这里可以获得项目最新的源代码和几乎所有的变更历史

从主干的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下,在这里进行重大的bug修复或者实验性质的开发,

用来标识主干或者分支的某个点的状态,以代表项目的某个稳定状态,也就是通常说的发布状态

3、自动化版本发布(Maven Release Plugin)

三个目标

release: prepare, release: rollback, release: perform

maven 坐标

是为了更加精确的获取插件位置

groupId artifactId(项目打包过程中以这个为开头) classifier不能直接定义

maven仓库分类

本地库

作用

maven本地存储构建的地方

更改配置用户范围的本地仓库

先在/.m2/目录下创建settings.xml文件,然后在~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址

更改配置全局范围的本地仓库

在M2_HOME/conf/settings.xml中更改配置,更改配置的方法同上

注意

此时更改后,所有的用户都会受到影响,而且如果maven进行升级,那么所有的配置都会被清除,所以要提前复制和备份M2_HOME/conf/settings.xml文件
故:一般情况下不推荐配置全局的settings.xml

远程仓库

中央仓库

阐述

maven安装时就把中央仓库默认成本低仓库,而且所有的pom文件都继承超级pom

私库(私服)

作用

(1)私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。

(2)当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。

特性

1、节省自己的外网带宽:减少重复请求造成的外网带宽消耗

2、加速Maven构件:如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低

3、部署第三方构件:有些构件无法从外部仓库获得的时候,我们可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用

4、提高稳定性,增强控制:Internet不稳定的时候,maven构建也会变的不稳定,一些私服软件还提供了其他的功能

5、降低中央仓库的负荷:maven中央仓库被请求的数量是巨大的,配置私服也可以大大降低中央仓库的压力

主流的maven私服

Apache的Archiva

JFrog的Artifactory

Sonatype的Nexus

其它公共库

远程仓库配置

引入新的配置元素: 子元素声明一个或者多个远程仓库。

元素:表示更新的频率,值有:never, always,interval,daily, daily 为默认值

元素:表示maven检查和检验文件的策略,warn为默认值

远程仓库认证

输入用户名和密码

这里的id必须与POM中需要认证的repository元素的Id一致

如何将生成的项目部署到远程仓库

(1)在pom中引入一个新元素 里面包涵两个子元素 repository和snapshotRepository, 前者表示发布版本构件的仓库,后者表示快照版本的仓库

(2)这两个元素都需要配置 id(该远程仓库的唯一标识),name,url(表示该仓库的地址)

(3)向远程仓库中部署构件,需要进行认证。配置同上

Maven在仓库中的存储路径

基于groupId的装备路径,把句点名称换成/ 符合 就是将 “.” 转换成 “/” ; example: org.testng —>org/testng

和maven类似的项目构建工具

Make 历史 1977 年 bell 实验室创建

架构 1、由一个命名为makefile脚本文件驱动,自定义语法格式,再组成一系列规则
2、可以利用系统本地命令

结构 目标>依赖>命令

缺陷 不能垮平台,不符合java目标、而且语法表达繁琐,可能因为一个tab 就构建失败

Ant

作用 java 项目构建工具

历史 最开始是tomcat创始人 James Duncan Davidson 动机是因为受不了MakeFile的语法格式,

优点 使用XML构建脚本 build.xml ,这样就实现了跨平台,符合java规范

结构 目标>依赖>命令

缺陷虽然可能跨平台,但是需要大量的手动管理依赖,

暂时总结到这里,还有续篇私服(nexus)搭建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值