开发者学堂课程【Maven框架实战教程:Idea+Maven(3)】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/641/detail/10578
Idea+Maven(3)
内容简介:
一、Maven 介绍
二、Maven 优势
三、学 Java 好处
一、Maven 介绍
Maven 是一个跨平台的项目管理工具。
1.主要内容
(1)项目对象模型(POM)
通过一小段描述信息来管理项目。【pom.xml】
(2)项目生命周期(Project Lifecycle)
(3)依赖管理系统(Dependency Management System)
2.核心优势
一个是项目构建的自动化,另一个是依赖管理的统一化。
这些概念有点抽象,但其实核心的是项目构建和依赖管理。
3.举例子
按每组七八个人分成项目组。
比如在企业中,我们会分成很多团队,分成多个项目,第一组做这个项目,第二次做那个项目,这是一般在企业中分布式项目,即8个组做8个项目,最后可拼成一个大的项目,最后就会存在问题。最核心的就是所阐述的第二阶段的导包方式,为什么这地方要变,一般来说,项目之间是需要相互去调用接口的。
第一组做的项目,第二组要调,第二组做的项目,第五组可能也要调,第一组提供接口给第二组调,那就会存在问题了。
比如第一组.jar,第二组调用第一组的包。按照现在的做法,是把第一组的项目打成包,拷贝过来就可以用了。这种传统做法肯定没问题,但是第一组把这个项目升级了,第二组再次拷贝,然后服务器升级。突然发现升级之后跟第一组不兼容了,整个项目报错了,这样就会存在一些问题。
到时候还要想办法回滚,回滚到哪里去?
所以对于之前做的所有项目,它都是一个很大的问题。没有版本的管理,没有用对jar 包统一管理。
现在构建都是自动化,工具是越来越完善,做起事情起来越来越简单。就以这个例子,让大家感受到之前它是有不足的,想回滚,没版本都不知道回滚到哪里去,只能靠记忆,靠做好的备份。
二、Maven 优势
项目构建过程:编译、测试、打包、部署。
1.构建自动化
两个优势,一个是构建,一个是统一管理。
(1)Ant
仅项目构建无依赖管理。
没有对项目目录结构进行约定,需要手动指定源文件类文件等地址,需要写代码,比较费劲,现在基本上都被企业淘汰。
(2) Maven
不仅是一个项目构建工具,更是一个项目管理工具。
对项目目录结构拥有约定,知道你的源文件在哪里,类文件在哪里。构建自动化(生命周期:编译、测试、打包、部署)
Maven项目自动化构建,非常方便,Maven 项目是有约定的。Maven 项目对目录做了约定,他的目录结构跟之前的有点不一样,因为他已经约定好在里面放 resource 文件、资源文件,在里面放类文件,他做了一个约定,因为他能在你约定的目录去做自动化。自动化也是有前提的,当然它会有这些约定。
针对这个概念,我们先有一个初步的认识,知道它能去帮我们去做构建自动化。
2.依赖管理
Maven的优势,大部分都使用依赖管理。
这里列出来传统项目的不足,就是大家第一阶段第二阶段做事的方式。
(1)组件之间无具体的管理关系
基于时代的变化,技术的变革,就出现了 Maven,可以来帮我们对 jar 包做统一的管理,不再需要每次都拷贝 jar 包,统一通过仓库来完成,只需要统一一个仓库就可以了。
这个图看上去会觉得有点费劲,先简要分析一下,我们建的就是这个 Maven 项目,那么这个就是我们要建的项目,这就是我们创建的项目就在这个地方。
(2)第三方依赖库常常没有版本号
创建的 Maven 项目,jar 包不在项目中, jar 包只是换了一种方式,本地仓库管理
所有的 jar 包,同时有版本号的管理,以前我们没有版本,现在都有统一的版本。
仓库的包来源于远程仓库,本地仓库通过连接公司内部的私服服务器,到互联网中
的仓库,互联网中的站点的地址,这个就是在互联网中共享的 jar 包。
项目找本地仓库要 jar 包,在这层公司内部一般会搭建私服服务器。互联网中的私服站点,这个地方所选用的就是阿里云的共享站点,阿里在这块做了很多贡献,很多都是开源免费的,提供了一个服务器,我提供的也共享给大家。
本地去找阿里云的共享的私服服务器,然后阿里云服务器上有就直接拿过来,没有去互联网中去找,把包拿过来。
3.Maven
统一依赖管理
单应用与多模块开发共用
互联网共享站点
不用复制包
http:llrepo1.maven.org/maven2
httpllmaven.aliyun. com/nexusIcontent/groups/public
三、学 Java 好处
我们学 Java 开发的好处,全世界共享开源最多的就是 Java 语言,特别多的开源的技术,其实大数基本上都是 Java 的站点,都是 Java 开发的。
阿里巴巴内部核心的是 Java 的团队,京东内部核心的是 Java 团队,百度内部核心的也是 Java 团队。不管是什么语言什么客户端,基本上做后端服务,做服务端这一块,Java 第一,所以它的起点比别人的要高。
这里有互联网共享站点,提供了两个,不用复制包:
http:llrepo1.maven.org/maven2
httpllmaven.aliyun. com/nexusIcontent/groups/public
让 jar 包统一管理。
互联网共享站点:
1.2.是不是看到有 jar 包,这是互联网中共享的。
从第三阶段学习到第四阶段,需要有网络的支持,也基于我们用的是阿里云的。
点一下1.2:
Jar 包都可以看到。
这都是互联网共享的战略,这里先了解到它的优势,方便以后使用。