Maven for Eclipse 第一章 ——Maven的介绍
最近深陷与一个无比垃圾的项目无法自拔,好久没有更新文章了。今天简单介绍一下 Maven 在 Eclipse 中的使用。文章的内容几乎出于《Maven for Eclipse》一书,此书言简意赅,实用性很强。
首先,Maven 是一个软件项目管理和程序理解的工具,一般来说,软件项目管理包括规划,组织,管理资源池,形成资源评估等。简单来说,Maven是一个全面的方法对应用模式的过程构建基础设施,它主要有如下目标:
- 简化程序的构建流程
- 提供统一的构建系统
- 提供质量项目信息
- 提供了项目最佳实战的指导
- 提供了透明的方式迁移新特性
为了实现上述目标,Maven提供了一组构建标准,工件库模型,一个引擎,描述项目,和一个标准的生命周期构建、测试,和部署项目工件。
1.Maven 的原则
Maven 的原则主要有以下几点:
- 约定大于配置。Maven定义了默认的项目结构和构建一个开发生命周期用来减轻开发负担。通过指定一个公开定义的模型,使项目便于理解。
- 声明式执行。Maven定义了一个项目构建的生命周期,包括一系列的阶段,这些阶段由plugin goal 组成。plugin goal可以包括声明pom文件来定制一个项目的执行。
- 重用性。Maven建立与可重用性。建立和执行声明在一个项目中可以使用不同的项目。Maven也很容易创建一个组建并整合到多个项目中。
- 清晰的依赖关系。Maven负责依赖管理,从而减少开发人员的负担。不同的冲突处理依赖关系处理得不错。
- 关注程序开发。标准的项目布局和构建生命周期,不需要开发构建;主要应该集中在项目的构建。
2.Maven 的组建架构
Maven 由下面几个不同的组建构建而成:

2.1 Plexus 容器
Plexus 是一个 ICO 容器,提供了面向组件编程的方式去构建模块,重用的组建可以很容易地用来组装何重用。它支持如下的一些特性。
- 组件生命周期
- 组建一致性策略
- 嵌套的容器
- 组件配置
- 自动织入
- 组件依赖
- 许多依赖注入技术,包括构造方法注入,setter 方法注入,私有属性 注入。
更多信息请访问:http://plexus.codehaus.org/.
2.2 Wagon
Maven Wagon 是一个传输的抽象用在 Maven artifact 和 仓库处理的代码中。Wagon 定义了统一的API,当前有如下供应者。
- File
- HTTP
- HTTP lightweight
- FTP
- SSH/SCP
- WebDAV
更多信息请访问:https://maven.apache.org/wagon/.
2.3 Maven Doxia
Doxia是内容生成框架,为用户提供了强大的技术来生成静态内容和动态内容。Doxia还用于基于web的发布上下文环境生成静态网站,还可以合并到动态内容生成系统,如博客、wiki和内容管理系统.
更多信息请访问:https://maven.apache.org/doxia/.
2.4 Modello
Maodllo 组件在 Maven 中用来生成不同类型的 artifact 在构建时根据数模模型的引用。
- 数据模型的 Java POJO类型
- Java POJO 转换成 XML
- XML 转换成 Java POJO
- 数据模型的 XDOC 文档
- XML schema 验证 XML 内容是否匹配数据模型
更多内容请访问:http://maven.apache.org/maven-1.x/plugins/modello/.
2.5 Maven SCM
这个组件提供了常用的 API 来执行源代码管理操作,以下类型是被 SCM 所支持的。
- Bazaar
- CVS
- Git
- Jazz
- Mercurial
- Perforce
- StarTeam
- Subversion
- CM energy
更多信息请访问:http://maven.apache.org/scm/.
Maven for Eclipse 第一章 ——Maven的介绍的更多相关文章
- 【Java EE 学习 82 下】【MAVEN整合Eclipse】【MAVEN的一些高级概念】
一.MAVEN整合Eclipse MAVEN是非常优秀,但是总是要开命令行敲命令是比较不爽的,我们已经习惯了使用IDE,所以还有一种将MAVEN整合到Eclipse的方法. 详情查看:http://w ...
- [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
注:为了看上去比较清晰这里只转载了中文 原地址: [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...
- 安装配置JDK+Eclipse+Maven、Eclipse里新建Maven Project以及HDFS命令和Java API-课堂内容
步骤:1.安装JDK→2.安装Eclipse→3.安装Maven→4. Eclipse里配置Maven (下载Windows版本,在Windows里安装使用.) 1.安装配置JDK ①官网下载Java ...
- Maven for Eclipse 第二章 ——安装 m2eclipse插件
m2eclipse 是一个提供了 Maven 与 Eclipse 整合的插件.它的意图是桥接上 Maven 和 Eclipse 之间的缺口.通过 Maven 原型提供的简单直白的接口创建项目,它使 M ...
- 学习笔记-[Maven实战]-第一章:Maven简介
Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...
- 第一章 Maven 安装配置
Maven基于(POM)项目对象模型,通过一小段描述信息来管理项目的构建.文档.和报告的项目管理软件,类似于php 的管理构建工具composer. 有关详细的Maven学习,可以参考学习https: ...
- Maven学习(一) -- 安装Maven及Eclipse中配置Maven
标签(空格分隔): 学习笔记 本文环境:Windows7, JDK1.7.0_76 安装及配置Maven环境变量 需要电脑中已经有Java环境 在控制台中输入:echo %JAVA_HOME%看是否能 ...
- 深入Java虚拟机读书笔记第一章Java体系结构介绍
第1章 Java体系结构介绍 Java技术核心:Java虚拟机 Java:安全(先天防bug的设计.内存).健壮.平台无关.网络无关(底层结构上,对象序列化和RMI为分布式系统中各个部分共享对象提供了 ...
- Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第一章,主要对 Ionic 的概念.发展历程.适配的移动平台等知识进行了介绍,并分享了 Ionic 相关的学习资源. 原文发表于我的技 ...
随机推荐
- LCX端口内网映射转发
这几天在渗透一家奶茶店的时候, 使用溢出攻击获得了奶茶店shell, 截屏以后发现该电脑有安装sqlserver, 但是数据库无法远程连接, 所以我决定使用端口映射工具突破端口连接限制: 我的机器地址 ...
- MyBatis - (一) 基本数据操作命令和简单映射
1. 简单的select映射 <mapper namespace="com.mybatis3.mappers.StudentMapper"> <select id ...
- MySql 常见错误代码大全
B.. 服务器错误代码和消息 服务器错误信息来自下述源文件: · 错误消息信息列在share/errmsg.txt文件中.“%d”和“%s”分别代表编号和字符串,显示时,它们将被消息值取代. · 错误 ...
- ssi框架搭建
Struts2主要来源于webwork框架,与Struts1相比,在数据传递方面,Struts2提供了更加强大OGNL标签功能,使其能够通过在action中定义变量来直接与jsp页面中的数据进行相互传 ...
- wkhtmltopdf错误解决办法
Odoo/openerp 打印报表时,无法输出PDF格式,提示下面的错误Unable to find Wkhtmltopdf on this system. The report will be sh ...
- dubbo高级配置学习(上)
启动时检查 Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true. 如果你的Spring容器是懒加载的, ...
- MySQL优化系列
https://blog.csdn.net/Jack__Frost/article/details/73347688
- Selenium Page object Pattern usage
使用Selenium的framework,大家免不了要使用他的page object pattern来开发适合自己的framework,原因很简单,page object 可以将测试的对象抽象成一个个 ...
- mybatis中模糊查询的使用以及一些细节问题的注意事项
页面有个功能 为 根据 品牌名进行 关键字查询,对应到数据库的是brand表的name字段的模糊查询 如果用的是SSM框架,在mybatis中我们需要自己写sql语句,涉及到like的模糊查询,myb ...
- code vs 3492 细胞个数
题目链接:http://codevs.cn/problem/3492/ 题目描述 Description 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为 ...