跳到主要内容

Maven

· 8 分钟阅读
CheverJohn

Maven项目对象模型(POM), 可以通过一小段描述信息来管理项目的构建、报告和文档的项目管理工具软件。 ​ Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性能,所以常常用两三行Maven构建脚本就可以构建简单的项目。由于Maven的面向项目的属性,很多项目发布时都会使用Maven,所以目前使用Maven技术的比例在持续增长。 ​ 总而言之,Maven是一个可以用来构建和管理任何基于Java的项目的工具,主要目标是让开发人员在最短的时间内了解开发工作的完整状态。

emmmm

Maven的优点如下

简化构建过程 提供统一的构建系统 提供优质的项目信息 提供最佳实践开发指南 允许透明迁移新功能

简化构建过程

虽然使用Maven时偶尔也需要你对底层细节有所了解!但是,Maven 确实屏蔽了很多细节,它已经大大简化了开发人员的工作。

提供统一的构建系统

Maven 使用项目对象模型(POM)和一组所有项目共享的插件来构建项目,从而提供统一的构建系统。开发人员使用 Maven 构建项目的话,后期维护项目会节省大量时间。

提供优质的项目信息

Maven 提供了大量有用的项目信息,这些信息部分来自您的POM,部分来自项目源。例如,Maven可以提供:

更改从源代码控制直接创建的日志文档 交叉引用的来源 邮件列表 依赖列表 单元测试报告包括报道

由于 Maven 改进了提供的信息,所有这些信息对 Maven 用户都是透明的。 通过 Maven 插件,其他产品可以将自己的项目信息兼容 Maven 的标准信息,所有信息同样基于POM

提供最佳实践开发指南

Maven 会汇总当前最佳开发实践的原则,并通过 Maven 影响其他项目。

例如,Maven 的正常构建周期中的单元测试的规范,执行和报告。

当前的单元测试最佳实践被用作指导原则:

将测试源代码保存在独立的、并行的源代码树中;

规范测试用例命名,便于来定位和执行测试;

为测试用例设置的环境,不依赖与客户化的定制构建和测试准备。

Maven还旨在工作流程中协助项目开发,如发布管理和问题跟踪。

允许透明迁移到新功能

Maven 为 Maven 客户端提供了一种安装更新的简单方法,开发人员可以简单便捷的利用 Maven 的最新特性。

从第三方或 Maven 安装新的插件变得非常的简单。

在Java中Maven项目跟Web项目的区别(distinction)

定义不同:

Web项目是网页的编码,像

jsp(https://baike.baidu.com/item/JSP/141543) servlet(https://baike.baidu.com/item/servlet) struts(https://baike.baidu.com/item/struts)

Java Maven项目是 AWT(https://baike.baidu.com/item/AWT)、**SWING**(https://baike.baidu.com/item/Swing/3286527) 这类的编码

举例说明:

Java不仅是一门编程语言,还是一个平台,通过JRuby和Jython,我们可以在Java平台上编写和运行Ruby和Python程序;

Maven不仅是构建工具,还是一个依赖管理工具和项目信息管理工具;

web项目是网页的编码项目,需要在服务器上运行。

作用不同:

Java可以用来编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 ;

Maven由项目对象模型、标准集合、项目生命周期和依赖关系管理系统构成,可以经过项目对象模型描述信息来管理项目的构建、报告和文档,还可以生成站点和管理JAR文件;

web是建立在Internet上的一种网络服务,包含了超文本、超媒体和超文本传输协议,可以提供图形化的直观的网页浏览界面,信息可以实时更新。

特点不同

Java是一门面向对象编程语言,Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用,这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

web即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面。

Maven常用命令

mvn archetype:generate 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务