Maven
maven是什么?
单词意思: 专家,内行;
Ant 和 Maven 的区别?
Ant特点:
1.没有一个约定的目录结构
2.必须明确让ant做什么,什么时候做,然后编译,打包
3.没有生命周期,必须定义目标及其实现的任务序列
4.没有集成依赖管理
Maven特点 :
1.拥有约定,知道你的代码在哪里,放到哪里去
2.拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
3.只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情
4.拥有依赖管理,仓库管理
Maven除了具备Ant的功能外,还增加了以下主要的功能:
1)使用Project Object Model来对软件项目管理;
2)内置了更多的隐式规则,使得构建文件更加简单;
3)内置依赖管理和Repository来实现依赖的管理和统一存储;
4)内置了软件构建的生命周期;
什么是maven坐标?
一.坐标定义
Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。
为了能自动化的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。
包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。
用来定位仓库中jar的"位置",一般坐标分为三部分:
1.groupid:公司或组织的域名倒序com.zl
2.artifactId:当前项目名称+当前项目的模块名称news,emp
3.version:当前模块的版本1.0,2.0
4.packaging:
(可选)项目的打包方式,maven默认是jar,如果使用war打包,则会生成一个**.war后缀的文件。
5.classifier:
(可选)用来定义构建输出与主构件对应的附属构件。其实就是生成项目对应的文档 或 源码包
如java文档 resource-manager-0.0.1-javadoc.jar、项目源码包resource-manager-0.0.1-source.jar。
注意,不能直接定义项目的classifier,因为附属构件是maven插件帮助生成的,不是项目直接直接生成的。