• Maven 专题(四):什么是Maven


    1 Maven 简介

    Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理。Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n]或['mevn]。

    什么是构建
    构建并不是创建,创建一个工程并不等于构建一个项目。要了解构建的含义我们应该由浅入深的从 以下三个层面来看:
    ①纯 Java 代码
    大家都知道,我们 Java 是一门编译型语言,.java 扩展名的源文件需要编译成.class 扩展名的字节码 文件才能够执行。所以编写任何 Java 代码想要执行的话就必须经过编译得到对应的.class 文件。
    ②Web 工程
    当我们需要通过浏览器访问 Java 程序时就必须将包含 Java 程序的 Web 工程编译的结果“拿”到服务 器上的指定目录下,并启动服务器才行。这个“拿”的过程我们叫部署。 我们可以将未编译的 Web 工程比喻为一只生的鸡,编译好的 Web 工程是一只煮熟的鸡,编译部署 的过程就是将鸡炖熟。 Web 工程和其编译结果的目录结构对比见下图:

    ③实际项目
    在实际项目中整合第三方框架,Web 工程中除了 Java 程序和 JSP 页面、图片等静态资源之外,还 包括第三方框架的 jar 包以及各种各样的配置文件。所有这些资源都必须按照正确的目录结构部署到服 务器上,项目才可以运行。 所以综上所述:构建就是以我们编写的 Java 代码、框架配置文件、国际化等其他资源文件、JSP 页 面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。 那么项目构建的全过程中都包含哪些环节呢?

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

    4 自动化构建

    其实上述环节我们在 Eclipse 中都可以找到对应的操作,只是不太标准。那么既然 IDE 已经可以进 行构建了我们为什么还要使用 Maven 这样的构建工具呢?我们来看一个小故事:

    这是阳光明媚的一天。托马斯向往常一样早早的来到了公司,冲好一杯咖啡,进入了自己的邮箱——很 不幸,QA小组发来了一封邮件,报告了他昨天提交的模块的测试结果——有 BUG。“好吧,反正也不是第一 次”,托马斯摇摇头,进入IDE,运行自己的程序,编译、打包、部署到服务器上,然后按照邮件中的操作 路径进行测试。“嗯,没错,这个地方确实有问题”,托马斯说道。于是托马斯开始尝试修复这个 BUG,当他 差不多有眉目的时候已经到了午饭时间。
    下午继续工作。BUG 很快被修正了,接着托马斯对模块重新进行了编译、打包、部署,测试之后确认没 有问题了,回复了 QA 小组的邮件。
    一天就这样过去了,明媚的阳光化作了美丽的晚霞,托马斯却觉得生活并不像晚霞那样美好啊。


    让我们来梳理一下托马斯这一天中的工作内容 :

    5 Maven 核心概念

    Maven 能够实现自动化构建是和它的内部原理分不开的,这里我们从 Maven 的九个核心概念入手, 看看 Maven 是如何实现自动化构建的
    ①POM
    ②约定的目录结构
    ③坐标
    ④依赖管理
    ⑤仓库管理
    ⑥生命周期
    ⑦插件和目标
    ⑧继承
    ⑨聚合


    ————————————————
    版权声明:本文为CSDN博主「DaulFrank」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_43619271/article/details/107067993

  • 相关阅读:
    skyline(TEP,TerraGate) Fly文件的BS部署系列(2)SFS把shapefile发布WFS服务
    skyline TerraGate 1060 Could not start service Terrain Service 的解决方法
    skyline TerraBuilder(TB)处理不规则范围影像,去除空值,填充高程等
    skyline(TEP,TerraGate) Fly文件的BS部署系列(1)MPT部署
    北京2008奥运会吉祥物福娃大家庭
    网站进度条完美解决方案
    北京2008年奥运会体育图标
    很汗颜的linux第一篇
    dyld:Library not loaded
    如果一个按钮被覆盖如何响应?
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13231513.html
Copyright © 2020-2023  润新知