目录

  • 一、软件工程
    • 概述
    • 传统项目开发存在的问题
  • 二、Maven 概述
    • Maven 优点
    • 构建过程
  • 三、Maven 核心概念
  • 四、安装 Maven 环境

Maven 官网 : http://maven.apache.org/

一、软件工程

概述

  • 概念: 为了能够实现软件的流水线式生产,在设计和构建软件时能够有一种规范和工程化的方法,人们便提出了软件工程的概念。
  • 软件开发需要编译代码—>开发人员自己测试代码—>把代码打包—>部署项目到测试服务器—>测试人员测试
    功能—>测试测试出 bug
  • 开发人员需要修改bug—>开发人员自己测试代码—>把代码打包—>部署项目到测试服务器—>测试人员测试功
    能—>直到符合功能要求。
  • 上述过程需要重复多次,大型项目中构建项目比较复杂,有很多的配置文件,jar 文件,多个子项目等等。都
    用人力完成费时费力,效率比较低。maven 可以让我们从上面的工作中解脱出来。
  • maven 是自动化构建工具。

传统项目开发存在的问题

  • 一个项目做成一个工程,造成工程比较庞大,需要使用多模块来划分项目;
  • 项目中需要的数量众多的 jar 包,需要手动下载并引入,并且多个项目需要的 jar 包存在重复的问题;
  • 项目中需要的 jar 包有版本兼容的问题,需要手动解决;
  • 项目中需要的 jar 包又依赖其它的 jar 包,需要手动解决。

二、Maven 概述

  • Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理。
  • Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一款在大型项目开发过程中不可或缺的重要工具。
  • Maven 可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目;
  • Maven 提供规范的管理各个常用 jar 包及其各个版本,并且可以自动下载和引入项目中;
  • Maven 可以根据指定版本自动解决 jar 包版本兼容问题;
  • Maven 可以把 jar 包所依赖的其它 jar 包自动下载并引入项目。
  • 类似自动化构建工具还有:Ant, Maven, Gradle。

Maven 优点

  • Maven 可以管理 jar 文件
  • 自动下载 jar 和 其文档、源代码
  • 管理 jar 直接的依赖, 比如 a.jar 需要 b.jar ,Maven会自动下载b.jar
  • 管理你需要的 jar 版本
  • 帮你编译程序,把 .java文件 编译为 class
  • 帮你测试你的代码是否正确
  • 帮你打包文件,形成 jar 文件,或者 war 文件
  • 帮你部署项目

构建过程

  • 构建(build),是面向过程的,涉及到多个环节的协同工作。

核心环节

  • ①清理:删除以前的编译结果,为重新编译做好准备。
  • ②编译:将Java源程序编译为字节码文件。
  • ③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
  • ④报告:在每一次测试后以标准的格式记录和展示测试结果。
  • ⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar包,Web工程对应war包。
  • ⑥安装:在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中。
  • ⑦部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行

三、Maven 核心概念

  • ①POM :Maven项目中有一个文件叫pom.xml,pom 为 project object module ---- 文档对象模型。Maven把一个项目当做一个模型使用。控制Maven构建项目的过程,管理jar依赖。
  • ②约定的目录结构 : Maven 项目的目录和文件的位置都是规定的
  • ③坐标 :一个唯一的字符串,用来表示资源
  • ④依赖管理 : 管理你的项目可以使用 jar 文件
  • ⑤仓库管理 : 资源文件存放位置
  • ⑥生命周期 : Maven 工具构建项目的过程,就是生命周期
  • ⑦插件和目标 :执行 Maven 构建的时候用的工具便是插件
  • ⑧继承 :稍后介绍
  • ⑨聚合 :稍后介绍

四、安装 Maven 环境

1.确保安装了 Java 环境 :Maven 是由 Java写的,所以必须要求安装JDK

查看 java 环境变量:
在cmd中输入
echo %JAVA_HOME%


2.下载并解压 Maven 安装程序

(1) 从 http://maven.apache.org/download.cgi下载maven安装包 apache-maven-3.8.4-bin.zip

(2) 解压安装包,解压到一个非中文目录下
在此我解压到了 C 盘的 Program Files 下,打开此文件夹,结构如下。


bin目录 :内含 mvn.cmd 等执行程序

conf 目录 :内含 maven工具本身的配置文件 – settings.xml

3.配置Maven环境变量

(1)在系统的环境变量中,添加一个叫MAVEN_HOME的变量, 指定它的值是maven工具安装目录

(2) 再把bin目录添加到Path变量下

4.验证是否配置成功

在cmd命令行下,输入命令

mvn -v

出现以下界面,则说明配置成功

Maven学习(一) --------- Maven 简介相关推荐

  1. Maven学习(一) - Maven基础

    2019独角兽企业重金招聘Python工程师标准>>> Maven作为Java语言的构建和依赖管理工具,已经被广泛使用.但对于maven的pom.xml的配置以及插件的使用,大部分人 ...

  2. Maven学习(一)——Maven入门

    为什么80%的码农都做不了架构师?>>>    一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服 ...

  3. Maven学习(三)-----Maven本地资源库

    Maven本地资源库 Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹.很简单,当你建立一个Maven项目,所有相关文件将被存储在你的M ...

  4. Maven学习(1) - Maven入门

    home index:http://maven.apache.org/ download:http://maven.apache.org/download.cgi install: http://ma ...

  5. maven学习:maven 的入门

    2.maven 的入门 到目前为止,我们已经大概了解并安装好了Maven,现在,我们开始创建一个最简单的Hello World项目. 2.1 在Idea创建maven项目 创建一个Maven项目也十分 ...

  6. Maven学习(八)-----Maven依赖机制

    Maven依赖机制 在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级. 案例分析 让我们看一个案例研究,以了解它是如何工作的.假设你想使用 Log4j 作为项目的日志.这里你要 ...

  7. MAVEN学习笔记-maven的获取和安装

    windows下maven的安装步骤:      1.下载压缩包http://maven.apache.org/download.cgi选择apache-maven-3.3.9-bin.zip下载   ...

  8. 【Maven学习】Maven打包生成包含所有依赖的jar包

    http://blog.csdn.net/u013177446/article/details/54134583 ******************************************* ...

  9. Maven学习(四)-----Maven中央存储库

    Maven中央存储库 当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载.首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没 ...

最新文章

  1. Spark Shuffle原理解析
  2. 第二阶段团队每日冲刺07
  3. python 标准错误输出_过程的实时标准输出/错误捕获
  4. 征战蓝桥 —— 2017年第八届 —— C/C++A组第9题——分巧克力
  5. WebRTC直播课堂实践:实时互动是核心
  6. 把列表变成列向量_线性代数的本质11 抽象向量空间
  7. Jupyter 常见可视化框架的选择
  8. c语言中变量的值十进制,C语言中介绍的整型变量 即十进制 十六进制什么的是什么意思 能具体解释一下吗 还有换算什么的 谢谢...
  9. 数据结构之最小生成树
  10. 《Python编程从入门到实践》记录之json模块(数据存储)
  11. linux之crontab使用技巧
  12. 利用WinSock进行有连接的通信
  13. 机器人图规划算法研究现状简述
  14. 单片机语音识别源码与资料(ASR M08-B模块arduino与51驱动)
  15. C++编程语言中类的静态成员介绍
  16. uos专业版与个人版区别_win+Android /wps办公软件官方专业版,内附激活码!
  17. linux下几款可用网盘对比
  18. 蚌埠学院教务系统自动导入课程表到小米/Redmi手机小爱同学课程表使用说明
  19. Bootstrap V5 图标字体的引入以及使用方法
  20. PDF是如何在线分割的?简单方法介绍

热门文章

  1. 毕业论文设置图序号为图1-1,而不是图一-1,同时设置题注方便交叉引用
  2. 搞点好玩儿的,如何做一个你自己的ad-block插件
  3. 强化学习蘑菇书学习笔记04
  4. 腾讯云老用户重新注册新账号算新用户吗?
  5. python代码提示太弱了_10行Python代码制作群聊提醒小助手,再也不怕漏掉消息了...
  6. 动态规划(Dynamic Programing)背包——01背包
  7. 一文搞懂 Redis
  8. STM8S103调试PWM的踩坑过程
  9. Three.js入门——画星空(star field)
  10. 进化从不关心已经完成生殖任务的人