首页 专题 文章 代码 归档
Maven简介
2020.02.21 14:22 2020.02.21 14:22

1. maven是什么

Maven 这个单词来自于意第绪语(犹太语),意为知识的积累。Maven 是一款由 Apache 软件基金会开发的,用来管理项目的构建,生成报告和文档的 Java 项目管理工具。

Maven 统一集中管理好所有的依赖包,不需要程序员再去寻找,并且能够自动解决重复和冲突问题。Maven 作为一个开放的架构,方便同第三方插件集成,所以公司项目使用 Maven 的比例在持续增长。


一个更正式的 Apache Maven 的定义: Maven 是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用 Maven 的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

2. 什么是依赖管理

一个java项目需要外部的第三方jar包来进行支持。我们说这个java项目依赖了这些jar包。

依赖管理就是将项目所依赖的jar包按照一定规则进行规范化管理。

3. 传统项目的依赖管理

传统的依赖管理就是程序员需要什么jar包,去网上进行下载,然后手动添加到工程中。

缺点:

  • jar包从网上不好找
  • jar包没有进行统一管理,容易造成jar包重复及版本冲突
  • jar包全部添加到工程中,造成工程过大

4. 约定优于配置

约定优于配置(Convention Over Configuration

约定优于配置是一个简单的概念。 系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置。

一个约定优于配置的例子就像 EJB3 持久化,将一个 特殊的 Bean 持久化,你所需要做的只是将这个类标注为 @Entity

框架将会假定表名和列名是基于类名和属性名。


Maven的默认配置:

1、源代码假定是在 ${basedir}/src/main/java

2、资源文件假定是在${basedir}/src/main/resources

3、测试代码假定是在 ${basedir}/src/test

4、项目假定会产生一个 JAR 文件。Maven 假定你想要把编译好的字节码放到${basedir}/target/classes。并且在 ${basedir}/target 创建一个可分发的 JAR文件。

5、Maven默认的本地仓库目录位置:~/.m2/repository


使用“遵循约定优于配置”系统的一个副作用是用户可能会觉得他们被强迫使用一种特殊的方法。 当然Maven 有一些核心观点不应该被怀疑,但是其实很多默认行为还是可配置的。

本节阅读完毕! (分享
二维码图片 扫描关注我们哟