Maven概述(一)
Maven是什么?
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
(Apache Maven是一个软件项目管理和理解工具。基于项目对象模型思想,Maven可以管理一个项目的构建、报告和信息中心文档)
Maven 是一个项目管理和整合工具。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。
Maven为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。
Maven能够帮助开发者完成以下工作:
- 构建
- 文档生成
- 报告
- 依赖
- SCMs
- 发布
- 分发
- 邮件列表
总的来说,Maven简化了工程的构建过程,并对其标准化。它无缝衔接了编译、发布、文档生成、团队合作和其他任务。Maven提高了重用性,负责了大部分构建相关任务。
Maven的目标
Maven的主要目的是为开发者提供
- 一个可复用、可维护、更易理解的工程综合模型
- 与这个模型交互的插件或者工具
Maven工程结构和内容被定义在一个xml文件中-pom.xml,是Project Object Model(POM)的简称,此文件是整个Maven系统的基础组件。
约定优于配置
Maven使用约定而不是配置,意味着开发者不需要再自己创建构建过程。
开发者不需要再关心每一个配置细节。Maven为工程提供了合理的默认行为。当创建Maven工程时,Maven会创建默认的工程结构。开发者只需要合理的放置文件,而在pom.xml中不再需要定义任何配置。
下表展示了工程源码文件、资源文件的默认配置,和其他一些配置。假定${basedir}表示工程目录:
配置项 | 默认值 |
---|---|
source code | ${basedir}/src/main/java |
resources | ${basedir}/src/main/resources |
Tests | ${basedir}/src/test |
Complied byte code | ${basedir}/target |
distributable JAR | ${basedir}/target/classes |
为了构建工程,Maven为开发者提供了选项来配置生命周期目标和工程依赖(依赖于Maven的插件扩展功能和默认的约定)。大部分的工程管理和构建相关的任务是由Maven插件完成的。
开发人员不需要了解每个插件是如何工作的,就能够构建任何给定的Maven工程。详细内容参考Maven插件部分。
参考资料
- http://maven.apache.org/
- 《Maven实战》 徐晓斌 著;
- 《Maven教程》 极客学院;
欢迎访问个人博客:http://www.ycyoes.com
Maven概述(一)的更多相关文章
- Maven概述
Apache Maven的定义:Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model,pom),一组标准集合,一个项目生命周期(Project Lifecy ...
- Java入门到精通——工具篇之Maven概述
为接手gxpt准备已经快一个月了从SSH2-->EJB-->环境搭建-->Maven的构建.下面就带领大家初始Maven 一.什么是Maven. Maven是一个垮平台的项目管理工具 ...
- Maven详解(一)------ Maven概述
1.引言 你能搜到这个教程,说明你对 Maven 感兴趣,但是又不是太理解.那么接下来这个系列的教程将会详细讲解 Maven 的用法,相信你看完之后,一定能对 Maven 的理解更进一步! 2.常规项 ...
- Maven实战读书笔记(一):Maven概述
1.1 Maven是什么,能做什么 Maven是一个跨平台的项目管理工具,主要服务于Java平台的项目构建.依赖管理和项目信息管理. Maven的用途之一是项目构建,能够自动化构建过程,从清理.编译. ...
- 【Java EE 学习 82 上】【MAVEN基本安装和使用方法】
一.Maven概述 1.什么是Maven? Maven中文意思是"行家"."专家",它是一种跨平台的项目管理工具. 2.Maven有什么作用? Maven能够实 ...
- 使用maven来管理java项目
初学maven,简单总结一下学习心得,若有不对的地方,欢迎各位大神给我指正~ 总结分为6个部分 maven概述 maven安装 maven项目结构和创建方法 maven配置文件settings.xml ...
- Maven Myeclipse 搭建项目
一.maven概述 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具! 简单说Maven 是一个项目管理和构建自动化工具 二.环境搭建 1. ...
- Maven(一)初识Maven
前言 在这之前一直都有去看关于Maven的相关介绍,但是没有到真正要用的时候,自己总是以为懂了.其实真的感觉Maven并没有想象的那么简单! 那我们该怎么去学习maven呢?接下来我将从: 初步认识m ...
- maven基本基础知识及命令学习-1
Maven概述:Maven是很有效的项目管理工具,maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目构建.报告和文档的软件项目管理工具.统一管理环境,架包等. 一 maven下载 ...
随机推荐
- Web —— 在自己电脑搭建网站,发布到公网,并使用域名访问
导读 闲置着一台笔记本,想拿来作为服务器来玩,先拿来发布之前的毕业设计的博客系统,百度搜出的资料玉石难辨,而且大多数前篇一律,刚开始参考了大多数资料来设置还是没能真正发布成功,最后发现原来网上大部分提 ...
- Removing Timezone from XMLGregorianCalendar
1.去掉時間之後的“Z”或者修改時區 package Package0809; import javax.xml.datatype.DatatypeConfigurationException; im ...
- UVA10559&POJ1390 Blocks 区间DP
题目传送门:http://poj.org/problem?id=1390 题意:给出一个长为$N$的串,可以每次消除颜色相同的一段并获得其长度平方的分数,求最大分数.数据组数$\leq 15$,$N ...
- GATT服务搜索流程(一)
GATT的规范阅读起来还是比较简答, 但是这样的规范在代码上是如何实现的呢?下面就分析一下bluedroid 协议栈关于GATT的代码流程. BLE的设备都是在SMP之后进行ATT的流程的交互.从代码 ...
- 由一个“两次请求”引出的Web服务器跨域请求访问问题的解决方案
http://blog.csdn.net/cnhnnyzhy/article/details/53128179 (4)Access-Control-Max-Age 该字段可选,用来指定本次预检请求的有 ...
- PHP 文件写入和读取(必看篇)
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换 ...
- [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
测试mysqld启动mysql server的时候,报如下错误: 2015-12-17 00:46:02 10785 [ERROR] Fatal error: Please read "Se ...
- gitblit 配置图文详解
Windows平台下Git服务器搭建 前提是确保存在JDK环境. 第一步:下载Gitblit.下载地址:http://www.gitblit.com/ 第二步:解压缩下载的压缩包即可,无需安装. 第三 ...
- 高级程序设计JavaScript
JavaScript简介 一.因何而生: 方便 表单验证操作(输入验证器) 1995年 2月 Netscape 布兰登 艾奇 JavaScript是一种专门为与网页交互而设计的脚本语言. 二.实现组成 ...
- 软工个人博客-week7
Part 1 No Silver Bullet - Essence and Accidents of Software Engineering软件工程中没用通用的方法或者技术让软件工程在短 ...