第一课:maven是什么,为什么使用Maven?

maven是一款服务于java平台的自动化构建工具。

一、Maven是什么

Maven(翻译为”专家”,”内行”)是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理

1.1、项目构建

项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。

第一课:maven是什么,为什么使用Maven?

  理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。

构建:

构建定义:把动态的Web工程经过编译得到的编译结果部署到服务器上的整个过程。

编译:java源文件[.java]->编译->Classz字节码文件[.class]

部署:最终在sevlet容器中部署的不是动态web工程,而是编译后的文件

构建的各个环节:

  • 清理clean:将以前编译得到的旧文件class字节码文件删除
  • 编译compile:将java源程序编译成class字节码文件
  • 测试test:自动测试,自动调用junit程序
  • 报告report:测试程序执行的结果
  • 打包package:动态Web工程打War包,java工程打jar包
  • 安装install:Maven特定的概念—–将打包得到的文件复制到“仓库”中的指定位置
  • 部署deploy:将动态Web工程生成的war包复制到Servlet容器下,使其可以运行

1.2、依赖管理

依赖指的是jar包之间的相互依赖,比如我们搭建一个Struts2的开发框架时,光光有struts2-core-2.3.16.3.jar这个jar包是不行的,struts2-core-2.3.16.3.jar还依赖其它的jar包,依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。

1.3、使用Maven的好处

Maven中使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。

Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程

只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情

使用Maven可以进行项目高度自动化构建,依赖管理(这是使用Maven最大的好处),仓库管理。

二、为什么使用Maven这样的构建工具

① 一个项目就是一个工程
如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于maven就可以将一个项目拆分成多个工程

② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中
同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。

③ jar包需要的时候每次都要自己准备好或到官网下载
借助于maven我们可以使用统一的规范方式下载jar包,规范

④ jar包版本不一致的风险
不同的项目在使用jar包的时候,有可能会导致各个项目的jar包版本不一致,导致未执行错误。借助于maven,所有的jar包都放在“仓库”中,所有的项目都使用仓库的一份jar包。

⑤ 一个jar包依赖其他的jar包需要自己手动的加入到项目中
FileUpload组件->IO组件,commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar
极大的浪费了我们导入包的时间成本,也极大的增加了学习成本。借助于maven,它会自动的将依赖的jar包导入进来。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/11578.html

(0)
江山如画的头像江山如画管理团队
上一篇 2023年1月26日 下午7:21
下一篇 2023年1月27日 上午9:04

99%的人还看了以下文章

  • 推荐!一个通用的javaBean很方便的实现连接数据库、查询、插入、修改功能

    这是一个通用的javaBean,能够很方便的实现连接数据库、查询、插入、修改功能。、 package com.common; import java.sql.*; public class DataBaseConn { public Connection conn = null; public void createConn(){ String DRIVER…

    2020年12月6日
    2.7K0
  • 第二章 Web技术简介

    1. 掌握HTML 5标记语言
    2. 掌握CSS样式表的使用
    3. 掌握JavaScript脚本语言
    4. 能够使用HTML5+CSS+JS 进行web页面设计

    2018年2月2日
    12.3K0
  • Python数据分析及可视化,科学计算练习题

    第一章 单元测试 1、 问题:数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从中发现因果关系、内部联系和业务规则,为商业提供决策参考。( )选项:A:对B:错答案: 【对】 2、 问题:Anaconda中包含了conda、Python在内的超过18个科学包及其依赖项。( )选项:A:对B:错答案: 【对】 3、 问题:数据分析是一个有目的…

    2022年1月29日
    21.1K1
  • 图片上传并压缩源码免费下载(等比例压缩或者原尺寸压缩)-java

    项目开发时,需要手机拍照,然后上传图片,因为项目记录数非常多,每条记录需要3张照片,而手机相机越来越好,分辨率也高,就要压缩后再上传。 中国网页设计今天分享的图片上传并压缩方法支持等比例压缩或者原尺寸压缩两种。 可自行设置图片质量参数quality,能够同时处理jpg和png格式,也可把PNG转jpg或jpg转PNG。 宽度和高度可以根据项目实际需求自行设置…

    2019年6月24日
    7.4K0
  • 【Java面试题】15道经典的java面试题(附答案)

    Java是一种可以跨平台的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。今天,中国网页设计给大家分享15道较为经典的Java面试题,希望对你将来在企业面试中能有所帮助! 1、面向对象的特征有哪些方面? 2、访问修饰符…

    2018年8月1日
    2.1K0
  • 编写第一个Python程序——输出HelloWorld并运行

    上一章节我们讲解了Python开发环境搭建,今天学习使用 Eclipse编写第一个Python程序——输出HelloWorld并运行。 1.打开Eclipse,选择File——》New——》Other。在弹出的New窗口中,选择Pydev——》Pydev Project——》next。 2.在弹出的窗口中,依次填写Project name(工程名)——》Di…

    2019年6月24日 编程开发
    7.1K0

发表回复

登录后才能评论