SSM基础篇(一)--Maven

Maven

Maven: 翻译为"专家"、"内行",是Apache下的一个纯Java开发的一个开源项目。
Maven是一个项目管理工具,使用Maven可以来管理企业级的Java项目开发及依赖的管理。
使用Maven开发,可以简化项目配置,统一项目结构。总之,Maven可以让开发者的工作变得更简单。

依赖管理:要明白依赖管理,首先要知道什么是依赖?
一个Java项目中往往会依赖一些第三方的jar包。比如JDBC程序中要依赖数据库驱动包,或者在使用c3p0连接池时,要依赖c3p0的jar包等。这时我们称这些Java项目依赖第三方jar包。
而所谓的依赖管理,其实就是对项目中所有依赖的jar包进行规范化管理。

1、不使用Maven,采用传统方式管理jar包的弊端:

(1)在一些大型项目中会使用一些框架,比如SSM或者SSH框架,而框架中所包含的jar包非常多(甚至还依赖其他第三方的jar包),如果这些jar包我们手动去网上寻找,有些jar包不容易找到,比较麻烦。
(2)传统方式会将jar包添加到工程中,比如Java工程中将jar包放在工程根目录或者放在自建的lib目录下;JavaWeb工程会将jar包放在:/WEB-INF/lib目录下,这样会导致项目文件的体积暴增(例如,有些项目代码本身体积可能仅仅几兆,而加入jar包后,工程的体积可能会达到几十兆甚至百兆)。
(3)在传统的Java项目中是将所有的jar包统一拷贝的同一目录中,可能会存在jar包文件名称冲突的问题!
(4)在进行项目整合时,可能会出现jar包版本冲突的问题。
(5)在传统java项目中通过编译(手动编译或者在eclipse保存自动编译)、测试(手动在main函数中测试、junit单元测试)、打包部署(手动打war包/手动发布)、运行(手动启动tomcat运行),最终访问程序。

2、使用Maven来管理jar包的优势:

(1)Maven团队维护了一个非常全的Maven仓库(中央仓库),其中几乎包含了所有的jar包,使用Maven创建的工程可以自动到Maven仓库中下载jar包,方便且不易出错。
另外,在Maven构建的项目中,如果要使用到一些框架,我们只需要引入框架的核心jar包,框架所依赖的其他第三方jar包,Maven也会一并去下载。
(2)在Maven构建的项目中,不会将项目所依赖的jar包拷贝到每一个项目中,而是将jar包统一放在仓库中管理,在项目中只需要引入jar包的位置(坐标)即可。这样实现了jar包的复用。
(3)Maven采用坐标来管理仓库中的jar包,其中的目录结构为【公司名称+项目/产品名称+版本号】,可以根据坐标定位到具体的jar包。即使使用不同公司中同名的jar包,坐标不同(目录结构不同),文件名也不会冲突。
(4)Maven构建的项目中,通过pom文件对项目中所依赖的jar包及版本进行统一管理,可避免版本冲突。
(5)在Maven项目中,通过一个命令或者一键就可以实现项目的编译(mvncomplie)、测试(mvn test)、打包部署(mvn deploy)、运行(mvn install)等。

还有发布到tomcat服务器中运行: mvn tomcat7:run。如果想实现上面的所有过程,只需要记住一个命令:mvn install
总之,使用Maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会优先使用Maven来构建项目.

远程仓库介绍

www.maven.org是maven的中央仓库,搜索一个框架后,找到某个版本,可以下载jar。
maven.aliyun.com是国内的maven中央仓库,是中央仓库的镜像,访问速度快。

框架排行

mvnrepository.com可以查看当前每个框架的的版本号及热度

使用maven前的准备工作

maven.apache.org可以下载maven

下载完成后解压修改conf文件夹下的settings.xml文件

image.png

如果访问速度过慢可以更改下载路径

SSM基础篇(一)--Maven_第1张图片

开发工具配置maven

eclipse
SSM基础篇(一)--Maven_第2张图片

Maven的作用

  • 统一开发规范与工具
  • 统一管理jar包

Maven构建的普通Java项目,对源代码、单元测试代码、资源乃至后续需要的文件都有专门的目录规划。
SSM基础篇(一)--Maven_第3张图片
上面的最后有一个pom.xml,这是Maven的核心配置文件,pom称为Project Object Model(项目对象模型),它用于描述整个Maven项目,所以也称为Maven描述文件。

pom.xml



   4.0.0
   
   com.jt
   springboot_demo1
   0.0.1-SNAPSHOT
   springboot_demo1
   Demo project for Spring Boot


   
   
      org.springframework.boot
      spring-boot-starter-parent
      2.3.4.RELEASE
       
   


      
   
      
      1.8
      
      true
   




   
      
      
         org.springframework.boot
         spring-boot-starter-web
      


      
         org.springframework.boot
         spring-boot-starter-test
         test
         
            
               org.junit.vintage
               junit-vintage-engine
            
         
      


      
      
         org.springframework.boot
         spring-boot-devtools
      


   


   
   
   
      
         
            org.springframework.boot
            spring-boot-maven-plugin
         
      
   


我们可以在 中添加依赖,但添加完后,需要等待(eclipse)/手动(idea)下载依赖到本地库,如果本地库存在,则会直接引入无需下载。

你可能感兴趣的:(maven)