持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情
哈喽,大家好!我是Why,一名在读学生,目前刚刚开始进入自己的编程学习生涯。虽然学习起步较晚,但我坚信做了才有0或1的可能。学了一段时间以后也是选择在掘金上分享自己的日常笔记,也希望能够在众多道友的大家庭中打成一片。 本文主要讲解手把手带你学maven【Day1】,如果大家读后觉得有用的话,还请大家多多支持博主:欢迎 ❤️点赞👍、收藏⭐、留言💬 ✨✨✨个人主页:JinHuan
💎Maven概述
🎯1.1 maven的简介
Maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目。 Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。 Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。 Maven创始者希望能够更多的让Java开发人员的日常工作更加容易,帮助理解任何基于Java项目。
🎯1.2Maven的两大功能
项目构建和<font color=backsize=5>依赖依赖
🌈1.2.1项目构建
项目构建是一个项目从:源代码、编译、测试、打包、部署、运行的过程。下面我们通过对传统的项目构建方式以及依赖管理进行对比介绍并总结一下Maven的优势。
🐳传统的项目构建方式
以web项目为例子:
1) 在idea中创建一个java web工程 2) 在工程中编写源代码及配置文件等 3) 对源代码进行编译,java源文件编译成.class文件 4) 执行Junit单元测试 5) 将工程打成war包部署至tomcat运行
🧣Maven项目构建过程
Maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段:
清理:删除以前的编译结果,为重新编译做好准备。 编译:将Java源程序编译为字节码文件。 测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。 报告:在每一次测试后以标准的格式记录和展示测试结果。 打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应war包。 安装:在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中。 部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行
Maven不仅是一个项目构建工具,更是一个项目管理工具。它在项目构建工程中,十分全面灵活。 Maven在进行项目构建时,它对项目目录结构拥有约定,知道你的源代码在哪里,类文件应该放到哪里去。它拥有生命周期的概念,Maven的生命周期是有顺序的,在执行后面的生命周期的任务时,不需要显示的配置前面任务的生命周期。例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
🌈1.2.2依赖管理
什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。 例如大家前面学过的javaWeb中需要的连接数据库的jar包、数据源的jar包等等。 什么是依赖管理?就是对项目所有依赖的jar包进行规范化管理。
🏓传统项目的依赖管理
传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中。 手动拷贝jar包添加到工程中的问题是: 1、没有对jar包的版本统一管理,容易导致版本冲突。 2、从网上找jar包非常不方便,有些jar找不到。 3、jar包添加到工程中导致工程过大。
🎽Maven项目的依赖管理
Maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(Maven工程的配置文件)添加jar包的坐标,自动从Maven仓库中下载jar包运行。 使用Maven依赖管理添加jar的好处: 1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。 2、Maven团队维护了一个非常全的Maven仓库,里边包括了当前使用的jar包,Maven工程可以自动从Maven仓库下载jar包,非常方便。
🎯1.3 使用Maven的好处
通过上边介绍传统项目和Maven项目在项目构建及依赖管理方面的区别,Maven有如下的好处:
1、一步构建 Maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。 2、依赖管理 Maven工程不用手动导jar包,通过在pom.xml中定义坐标从Maven仓库自动下载,方便且不易出错。 3、Maven的跨平台,可在window、linux上使用。 4、Maven遵循规范开发,有利于提高大型团队的开发效率,降低项目的维护成本,公司都会考虑使用Maven来构建项目。
下一篇《Maven的安装与配置》