Maven简单介绍(Maven是什么)
简单介绍
Maven,在意第绪语中意为对知识的积累。Maven最初用来在Jakarta Turbine项目中简化该项目的构建过程。
Jakarta Trubine项目有多个project。每一个project都有自己的多个Ant构建文件。
每一个project的这些构建文件都仅仅有一小部分不同。而且全部的Jar文件被使用CVS纳入了版本号管理。我们想要实现一种标准方式去构建这些project、明白定义这些project的组成部分、简单的公布project信息以及多个project间共享Jar包。
就这样,一个能够构建和管理不论什么基于java的project的工具诞生了。
我们希望我们做的这些事情能够简化Java开发人员日复一日的工作。并有助于他们对不论什么基于Java的项目的理解。
Maven的目标
Maven的主要目标是希望开发人员能在最短的时间内理解开发的完整状态。为了达到这个目标,Maven在下面几个方面做出了努力:
- 简化构建过程
- 统一构建体系
- 提供高质量的项目信息
- 提供开发的最佳实践指南
- 实现透明的向新特性的迁移
简化构建过程
使用Maven不须要知道一些潜在的或底层的机制,Maven屏蔽了非常多细节。
统一构建体系
Maven通过使用project对象模型(project object model POM)以及一系列可共享的插件来构建project。仅仅要你熟悉了怎么构建一个Mavenproject。你就自然知道了怎么构建全部的Mavenproject。
这样的统一的构建体系能够节省大量的了解project结构的时间。
提供高质量的项目信息
Maven提供了非常多实用的project信息,这些信息一部分来自于project的POM文件,一部分来自原project源代码。
Maven能够提供下面信息:
- 从源代码控制处生成的改动日志文档
- 交叉引用源代码
- 开发人员邮件列表
- 项目依赖列表
- 包括覆盖率的单元測试报告
Maven改进了project信息的提供。全部这些信息对Maven用户来说都是透明的。
Maven还同意其它人提供Maven插件来获取project信息,与Maven获取的标准信息相同处理。这些都须要基于POM来完毕。
提供开发的最佳实践指南
Maven致力于收集现有的开发的最佳实践原则,并以此来简化project的开发。
比如:规范。运行,和单元測试报告是正常使用Maven构建周期的一部分。
眼下Maven中的单元測试最佳实践例如以下:
- 将測试源代码放在一个单独的,但与主代码同级的位置
- 使用測试用例命名规范来定位和运行測试
- 让測试用例本身去设置測试环境,不要为了測试而专门构建环境
Maven 在project的文件夹结构上也给出了很多最佳实践指南。遵守了这些project文件夹结构指南后。假设你了解了这样的文件夹结构,你也就会easy的了解其它全部遵循了这样的文件夹结构的Mavenproject。
实现透明的向新特性的迁移
Maven为使用者提供了一种简单的方式去更新他们已经install的project,这使得用户能够获取到基于Maven对project作出的不论什么变化。
基于以上原因。install新的project、从第三方或Maven本身更新插件变得非常easy和常见。
Maven不是什么?
你也许听说过下面关于maven的描写叙述:
- Maven是一个站点和文档工具
- Maven继承于Ant,能够让你下载project依赖
- Maven是一系列可复用的Ant脚本的集合
Maven确实做了以上这些事情,这能够从“Maven是什么”一节中看到。
但这些不是Maven仅有的特性。mavan的目标不止于此。
Maven确实鼓舞最佳实践,但因为一些历史原因,我们对一些project的实现可能没有遵循这些最佳实践。尽管Maven被设计为有弹性的。在一定程度上,为了满足不同project的须要,为了达到全部的目标。我们做出了一些妥协,以使Maven能满足每一种情况。
假设你决定了使用Maven,可是你的project文件夹结构与Maven推荐的不一样而你无法又一次组织,你可能须要放弃一些Maven特性,不能全然的使用Maven了。
原文来自于Maven官网:What is Maven?
Maven简单介绍(Maven是什么)的更多相关文章
- Maven学习第1期---Maven简单介绍
前言 Hadoop的MapReduce环境是一个复杂的编程环境,所以我们要尽可能地简化构建MapReduce项目的过程.Maven是一个很不错的自动化项目构建工具,通过Maven来帮助我们从复杂的环境 ...
- Maven简单介绍
Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven 的缺省构建规则 ...
- maven系列(1)-maven的介绍与安装
maven的介绍 maven是大名鼎鼎的Apache下的java构建工具. Apache Maven is a software project management and comprehensio ...
- Maven仓库—Nexus环境搭建及简单介绍
1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/ NEXUS OSS [OSS = Open Source Software,开源软件--免费] NE ...
- Maven仓库-Nexus环境搭建及简单介绍
1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/ NEXUS OSS [OSS = Open Source Software,开源软件——免费] NE ...
- 图文介绍MyEclipse (2015) 中创建简单的Maven项目的步骤(用于生成可运行jar文件)
利用MyEclipse的引导,能够非常方便的创建简单的.用于生成可运行jar文件的Maven项目: (原创文章,转载请注明转自Clement-Xu的博客:http://blog.csdn.net/cl ...
- Maven详细介绍
Maven 目录 1 什么是Maven? 2 Maven 的好处 3 获取和安装 3.1 获取 3.2 安装 3.2.1 环境变量的配置 4 设置本地仓库 5 创建简单的Maven实例 5.1 使用骨 ...
- 学习笔记——Maven实战(七)常用Maven插件介绍(上)
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了 ...
- 学习笔记——Maven实战(八)常用Maven插件介绍(下)
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...
随机推荐
- Swift3.0 闭包整理
语法表达式 一般形式:{ (parameters) -> returnType in statements } 这里的参数 ...
- 4.QList
#include "mainwindow.h" #include <QApplication> #include <QLabel> #include < ...
- linux服务器卸载本机默认安装的jdk
1. 查看系统安装的版本情况: rpm -qa | grep jdk rpm -qa | grep gcj 2. 查看并删除 [root@iZ2zeedm3x12d8xb4g15a ...
- sql server 启用数据库的 Service Broker
使用SqlDependency时要开启Service Broker ,那么SqlDependency是什么 https://www.cnblogs.com/zhaoyihao/p/5663258.ht ...
- sql server 授权相关命令
原文:https://blog.csdn.net/hfdgjhv/article/details/83834076 https://www.cnblogs.com/shi-yongcui/p/7755 ...
- 洛谷P4016 负载平衡问题(最小费用最大流)
题目描述 GG 公司有 nn 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 nn 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬运. 输入输出格式 输入格 ...
- 关于C语言变量声明在其他语句后的一些细节
今天一个同学来找我,说他的代码老是编译不通过,我看了半天,好像都很符合逻辑,但一直显示一个变量未定义,我就纳闷了,代码类似如下: int main(){ login(); int id; scanf( ...
- 一个javascript面试题解析
; function fn(){ console.log(this.length); } var obj = { length: , method: function (fn) { fn(); // ...
- iOS11中navigationBar上 按钮图片设置frame无效 不受约束 产生错位问题 解决
问题描述: 正常样式: 在iOS 11 iPhone X上显示效果: 观察顶部navBar上的左侧按钮 在ios 11 上 这个按钮的图片不受设置的尺寸约束,按其真实大小展示,造成图片错位,影响界 ...
- 像素点的Hessian矩阵
最近开始学习图像处理相关知识,碰到对像素点求黑塞矩阵查了资料才搞懂. 给定一个图像f(x,y)上的一点(x,y).其黑塞矩阵如下: 因为导数的公式是f'(x)=(f(x+dx)-f(x))/dx在数字 ...