非专业性术语表达,主要方便理解。
一、Maven简单概括:
1、传统经典java-web项目的结构,往往是所有业务代码融合到src中,依赖支持放到lib中。
弊端(列举2个):A、业务不能模块分离管理;B、lib中的jar太多会导致项目过大,不利于下载与copy给团队其他成员。
2、经典项目的管理方式,不利于现在企业的发展,Maven与Ant都是用于进行项目管理的工具,它们都有自己的优势。
3、maven不是一种技术,开发人员理解不要有误,maven是一种项目管理工具,让项目开发过程中能有效、有结构性的管理你的工程项目,而针对采用maven结构进行项目管理的项目,都称为maven项目。
4、maven主要有lib仓库、项目编译打包两个主要优势。
A、公有lib仓库:https://mvnrepository.com/,理解为已有团队把所有的主流开源jar都集中进行管理了,可供大家下载。
B、本地仓库:当开发maven项目时,你的maven项目所需要依赖的jar支持会从公有仓库下载下来,下载到你本机电脑的管理目录,即为你的本地lib仓库。注意maven的优势就是当本地不存在此jar包它即下载,已经存在了则不会下载,即等于你运行maven项目时首次会下载该maven项目所依赖的jar到你本地,如发现你本地仓库已经有了,则跳过去下载其他的没有的jar给你本机,这样的好处是今后你的本地仓库的jar支持会越来越全面,今后去下载其他的别人的maven项目你都可以直接运行,而且你下载的只是代码,无须再次下载jar,只有别人项目中的还有对其他的jar依赖而你本机还没有的时候才会需要你去下载。
C、maven项目,编译很方便,特别是当出现业务进行分离管理时,同样可以有效的进行编译。
二、maven安装与配置,eclipse配置:
请看安装教程:https://www.cnblogs.com/peter072588/p/4397694.html
安装完成后,打开eclipse,选择工作空间,先给当前工作空间接入自己的maven仓库。注意:eclipse每次更换工作空间后,你的maven都需要重新配置。
本地maven仓库截图:表示今后你本地有了一个自己的lib仓库,便于今后eclipse去依赖本地的仓库,如发现本地仓库不存在,ecplise检测后会自动下载lib到你本地仓库。
三、Maven常规项目结构讲解:
1、单项目结构:
单项目结构的运用并不多见,因为如果只是单项目结构,跟传统经典项目来对比,只是结构不同,并没有区别出maven的优势。
2、多项目结构:也可以理解为parent-child管理或者模块化管理。
A、多项目结构的管理的运用随处可见,因为maven的主要核心优势-可进行模块化管理。
B、子项目可以是java模块(即纯java项目),也可以是web模块(即web应用项目)。
C、常见的maven项目,会建立子模块为java模块,也会建立子模块为web模块,web模块常依赖java模块;很多开发团队会习惯性的,对工具模块,业务模块,api服务模块等进行划分成子模块(以java模块),带有视图界面的作为web模块应用。
四、项目编译
1、maven单模块项目-run as -maven install ,表示编译当前单模块项目,编译后的结果在target下。
2、maven的主项目(即parent)-run as -maven install ,表示编译整个主项目,包括主项目下的子项目也会重新编译打包,主项目不存在target目录,所以不存在主项目直接运行或者打包部署。往往都是打包web模块项目。
如图:
五、项目启动方式:
A、启动target下编译后的项目:
B、选择web模块项目,run as -run on server启动方式,也可以。
启动如果报错,解决方案:
RC(right click on web project) --> properties --> Deployment Assembly --> Add --> Java Build Path Entries --> Next -->Maven Dependencies --> finish