1. 什么是maven
从字面解释maven是知识渊博、经验丰富的专家或怪才的意思。深入研究和使用maven,确实让人感到它确实沉淀了Java项目构建领域中的丰富知识和经验,并以一种高度可复用的形式出现在你的面前。maven的开发者在他们开发网站上指出,maven的目标是要使得项目的构建更加容易,它把编译、打包、测试、发布等开发过程中的不同环节有机的串联了起来,并产生一致的、高质量的项目信息,使得项目成员能够及时地得到反馈。maven有效地支持了测试优先、持续集成,体现了鼓励沟通,及时反馈的软件开发理念。如果说Ant的复用是建立在"拷贝--粘贴"的基础上的,那么Maven通过插件的机制实现了项目构建逻辑的真正复用。
2. maven的主要概念
* Goal: 类似于ant中的target,指完成一定功能的一个任务
* Artifact:项目产生物,主要有jar, war, maven插件
* Plug-in:插件,可复用的功能模块比如,middlegen,statcvs
* POM:项目对象模型(Project Object Model),是项目的一些关键元信息的集合。主要包含项目管理信息、具体的项目描述、开发小组的构成、源代码库(如CVS)和邮件列表、项目依赖的库文件(开发时刻依赖和运行时刻依赖)、源代码、单元测试代码和资源文件的位置、项目报告
3. maven的依赖管理
maven对项目依赖的库文件进行集中管理,所有库文件都以一定结构存放在repository中,并用 artifactId,groupId, version三个属性来标示它们。当项目需要某些库文件时,只要指明这三个属性即可。库文件在repository中存储结构也和这三个属性紧密相关,其关系为${mave.repo.remote}//s/ -.。也就是假定repository的根目录为/javarepository那么 groupId为spring,artifactId为spring-orm,版本(version)为1.1.3的jar的库文件的存储路径为 /javarepository/spring/jars/spring-orm-1.1.3.jar。
maven的repository通常放在对公众开放的主机上,并由众多的镜像构成,最主要的是http://www.ibiblio.org/maven/。选择哪些repository是通过 Java系统变量maven.repo.remote。比如下面的配置maven.repo.remote=http://ultra/maven/, http://www.ibiblio.org/maven/,http://boss.bekk.no/maven/,http://mirrors.sunsite.dk/maven, http://www.ganet.org/maven将使maven从www.ibiblio.org,boss.bekk.no, mirrors.sunsite.dk,www.ganet.org四个站点依次寻找依赖的文件。该变量可以在四个地方设置:
* project.properties,
* build.properties,
* ${maven.home.local}/build.properties
* -D maven命令行,
其优先级依次升高。通常在${maven.home.local}/build.properties中设置此变量。
3. maven的主要功能
maven是个构建工具的集成平台,所有功能都是通过插件实现的。maven内置和第三方扩展工具提供了大量功能,除了包括基本的编译、打包、java文档生成、运行单元测试外,还有j2ee项目支持,代码生成,产生测试覆盖率报告,项目开发过程各种文档的发布。
4. 使用maven的案例分析
背景,轻量级J2EE项目,dhtml+struts+spring+hibernate+dbunit,使用ER模型进行数据库设计
工具需求:
1. 生成各种IDE(如eclipse, InteliJ Idea, JBuilder)的项目工程文件
2. 从设计好的数据库表反向生成Hibernate mapping和POJO、
3. 导入导出excel的测试数据
4. 项目开发小组还希望能够通过一个统一的入口迅捷地了解和获取项目开发过程的产生物和状态报告,比如项目管理者想了解单元测试的结果和测试覆盖率、代码贡献率;而设计人员系统通过这样一个渠道及时把设计的结果发布给编码人员,如需求描述的文档、数据库表结构、对象模型等;资深开发人员则想通过该入口能够快捷的浏览、评审代码。
通过对工具需求的分析结合maven提供的功能,可有以下方案:
* 对于需求1可以使用maven的eclipse, idea, jbuilder插件,这些插件可以生成相应的项目工程文件;
* 对于需求2可使用maven-middlegen插件数据库反向工程生成各个实体的Hibernate影射文件,再用maven-hibernate插件将这些文件按模块组合成单个文件;
* 对于需求3可使用maven-dbunit插件的export-xls和import-xls功能;
* 对于需求4可使用site插件生成并发布项目信息和项目的各种报告如:代码交叉引用报告、单元测试报告、CVS代码状态报告等。
分享到:
相关推荐
maven入门到精通 用 Maven 做项目管理 在 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml能够完成编译、测试、打包、部署等很多任务,但我们也碰到了很多的问题,如 jar文件管理混乱,各个...
**Maven入门到精通** Maven,一个强大的Java项目管理工具,由Apache软件基金会开发,旨在简化构建过程,提供统一的构建系统,并通过依赖管理和项目信息管理,帮助开发者更高效地构建、测试和部署Java应用。它通过...
在“Apache Maven入门篇(上)”中,我们将探讨Maven的基本概念、安装步骤以及如何创建和管理一个简单的Java项目。 1. Maven的核心概念: - **POM(Project Object Model)**:POM是Maven项目的核心,是一个XML文件...
本篇文章将深入探讨Maven的入门知识,包括Maven的安装、配置、基本命令以及通过案例来理解Maven的工作原理。 首先,让我们从**Maven的安装**开始。在Windows系统中,你可以访问Maven官方网站下载最新版本的Maven,...
### Maven 入门详解 #### 一、Maven 概述与重要性 Maven 是一个流行的项目管理和整合工具,广泛应用于 Java 开发领域。它为开发者提供了完整的构建生命周期框架,帮助开发者简化项目的构建过程,使得项目的管理和...
**Hibernate+Maven入门demo详解** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的SQL语句。Maven则是一个项目管理工具,它管理...
在IT行业中,Maven和SpringMVC是两个非常重要的组件,它们分别是项目管理和Web应用程序开发的核心...通过这个入门级的HelloWorld实例,我们可以快速理解这两个工具的基本用法,为进一步深入学习和实践打下坚实的基础。
**SpringMVC与Maven入门实例详解** 在Java Web开发中,SpringMVC和Maven是两个非常重要的工具。SpringMVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)架构,用于构建可维护、高性能的Web应用程序。而...
【 Maven 概述】 在软件开发中,尤其是在Java领域,我们常常面临一系列问题,如环境配置差异、依赖管理混乱以及项目构建的繁琐等。这些问题在 Maven 出现后得到了很好的解决。Maven 是一个强大的项目管理工具,由 ...
** Maven 入门指南 ** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过标准化项目构建过程,使得开发人员可以更轻松地管理依赖、构建、测试和部署项目。本教程将引导初学者了解 Maven 的...
【Maven入门指南】 Maven是一个广泛应用于Java项目的强大构建工具,它自动化处理软件构建的多个环节,包括源码编译、文档生成、JAR包创建、依赖管理和部署。Maven的核心理念是通过项目对象模型(Project Object ...
Apache Maven 是一个强大的项目管理工具,特别是在Java开发领域中,它替代了早期的ANT工具,提供了更为全面和便捷的项目构建和管理功能。Maven基于项目对象模型(Project Object Model,POM),能够自动化构建过程,...
标题"超详细Maven快速入门到精通.txt打包整理.zip"表明这是一个关于Maven的全面教程,涵盖了从基础到高级的各个方面,旨在帮助用户快速掌握Maven的使用。Maven是一个Java项目管理和综合工具,由Apache软件基金会开发...
【Maven是什么】 Maven是一个基于Java的构建工具,它旨在简化软件开发流程,特别是Java应用的构建。与Ant类似,Maven可以帮助开发者完成编译、测试、打包、发布等一系列重复性工作。Maven的核心目标是通过自动化...
- [一、Maven简介和快速入门](#一Maven简介和快速入门) - [1.1 Maven介绍](#11-Maven介绍) - [1.2 Maven主要作用理解](#12-Maven主要作用理解) - [1.3 Maven安装和配置](#13-Maven安装和配置) - [二、基于IDEA的...
Maven入门培训,基础讲解,ppt Maven入门培训,基础讲解,ppt