Maven 入门 01 - 关键特性

一、认识 Maven

1、Maven 最重要的功能

Apache Maven 是一个强大的项目管理工具,可以用于项目构建、依赖管理、项目信息管理。

Maven 更多的被用作项目构建工具,它使项目的构建过程简单化、标准化、可复用,极大的方便了整个项目的开发和管理。

它基于工程对象模型(POM)的概念,使用 pom.xml进行核心功能配置,进而管理项目的构建、报告和文档等。

2、什么是构建工具?

构建工具是将软件项目构建相关的过程自动化的工具。

构建一个软件项目通常包含以下一个或多个过程

  • 生成源码(如果项目使用自动生成源码);
  • 从源码生成项目文档;
  • 编译源码;
  • 将编译后的代码打包成JAR文件或者ZIP文件;
  • 将打包好的代码安装到服务器、仓库或者其它的地方;

当然,有些项目可能需要更多的过程才能完成构建,同样也可以实现自动化。

自动化构建过程的好处:

  • 将手动构建过程中犯错的风险降到最低。

  • 自动构建工具通常要比手动执行同样的构建过程要快。

二、Maven 关键特性

1、简化并标准化项目构建过程

  • Maven 为开发者提供了一套完整的构建生命周期框架,开发人员只需要按照框架操作。
  • Maven 使用一个标准的目录结构和一个默认的构建生命周期,开发人员只需要把代码放入相应的目录中并使用默认配置。

2、自动管理依赖

2.1 以前项目开发中的问题

jar 包依赖和冲突问题:

在构建一个大型项目时,经常需要用到很多第三方的类库,需要引入大量的jar包,需要一个个去查找。

一个大型项目中 jar 包的数量之多往往让我们瞠目结舌,并且jar包之间的关系错综复杂,多个jar包之间又可能会引起冲突问题,都可能导致项目编译失败。

以往开发项目时,程序员往往需要花较多的精力在引用jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个jar包往往会报一些让人摸不着头脑的异常。

2.2 Maven 如何解决依赖问题?

我们只需要告诉Maven需要哪些 jar 包,它会帮助我们自动下载、并统一管理,极大提升开发效率。

  • 自动下载依赖jar
    • 通过在pom.xml文件中的<dependency>节点添加相应配置,就会自动下载相应jar包。
<dependency> 
      <groupId>junit</groupId>  项目名
      <artifactId>junit</artifactId>  项目模块  
      <version>4.1.1</version>  项目版本
      <scope>test</scope> 作用范围
    </dependency>
  • 自动管理依赖

    • 每一个jar包也有自己的 pom.xml文件,里面也会有<dependency>配置,在这里配置的是这个jar包所依赖的其他jar包,也会被maven自动下载下来
  • 统一管理jar

    • 通过仓库来实现统一管理,后面会详细讲解Maven仓库的概念。

3、约定优于配置

Maven 使用约定而不是配置。

也就是说开发者不需要关心每一个配置细节,Maven 会为工程提供合理的默认行为。

当创建 Maven 工程时,Maven 会创建默认的工程结构。开发者只需要合理的放置文件,不再需要定义任何配置。

下表是工程源码文件、资源文件的默认配置,和其他一些配置:

(假定 ${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

4、热部署,热编译

在web项目已经运行的时候,修改代码能直接被web服务器所接受,不需要重启服务器或者重新部署代码,而且可以直接通过maven 打包war或者jar项目。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值