Maven 核心概念
Maven能够实现自动化构建是和它的内部原理分不开的,这里我们从Maven的九个核心概念入手,看看Maven是如何实现自动化构建的?
①POM
②约定的目录结构
③坐标
④依赖管理
⑤仓库管理
⑥生命周期
⑦插件和目标
⑧继承
⑨聚合
Maven特点
那么,Maven 和 Ant 有什么不同呢?
在回答这个问题以前,首先要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant代表两个差异很大的工具。所以接下来只说明这两个工具的等同组件之间的区别,如表 1 所示。
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。
安装 Maven 环境
1、确保安装了java 环境:maven 本身就是java 写的,所以要求必须安装JDK。
查看java 环境变量:echo %JAVA_HOME%
2、下载并解压maven 安装程序:
maven.apache.org/download.cg…
3、配置 Maven 的环境变量:
MAVEN_HOME=d:/apache-maven-3.3.9 或 者M2_HOME=d:/apache-maven-3.3.9 path=%MAVEN_HOME%/bin; 或者%M2_HOME%/bin;
4、验证是否安装成功: mvn –v
Maven 的核心概念
Maven 工程约定目录结构
maven 中约定的目录结构:
Hello
|---src
|---|---main
|---|---|---java
|---|---|---resources
|---|---test
|---|---|---java
|---|---|---resources
|---pom.xml
说明:
Hello:根目录,也就是工程名
src:源代码
main:主程序
java:主程序的java 源码
resources:主程序的配置文件
test:测试程序
java:测试程序的java 源码
resources:测试程序的配置文件
pom.xml:Maven工程的核心配置文件。
一般情况下,我们习惯上采取的措施是:约定>配置>编码
maven 的pom.xml 记录的关于构建项目的各个方面的设置,maven 从pom.xml 文件开始,按照助约定的工程目录编译,测试,打包,部署,发布项目。
第一个maven 工程
按照如下步骤,实现第一个maven 项目,以 maven 推荐的约定方式创建目录,类文件。
某个目录中创建文件夹Hello
在Hello 中创建子目录 src
拷贝pom.xml 到Hello 目录和src 是同级放置的。
进入src 目录,创建main, test 目录
进入main 目录,创建 java,resources 目录。
进入java 目录,创建目录 com/bjpowernode/
在 com/bjpowernode/目录下创建 HelloMaven.java 文件,定义 int addNumber(int n1,n2){ return n1+n2};
定义public static void main(String args[]) { System.out.prinltn(“Hello Manven”); //也可以调用 addNumber()方法 }
进入到Hello 目录在,执行 mvn compile
进入到target/classes 目录执行 java
com.bjpowernode.HelloMaven
pom 文件
即Project Object Model 项目对象模型。Maven 把一个项目的结构和内容抽象成一个模型,在xml 文件中进行声明,以方便进行构建和描述, pom.xml 是 Maven 的灵魂。所以,maven 环境搭建好之后,所有的学习和操作都是关于pom.xml 的。
pom.xml 初识: