说说maven有什么优缺点?

优点

依赖管理

  • 自动化依赖处理:Maven 能自动下载和管理项目的依赖库,避免了手动处理依赖的繁琐工作。
  • 依赖调解:Maven 能处理依赖冲突,通过依赖调解机制自动选择合适的版本。

标准化项目结构

  • 一致性:Maven 提供了一套标准的项目目录结构,使得项目结构在团队和项目之间保持一致,便于管理和维护。
  • 约定优于配置:Maven 遵循“约定优于配置”的理念,减少了配置的复杂性。

构建生命周期

  • 自动化构建过程:Maven 定义了一系列的构建生命周期阶段(如编译、测试、打包、部署等),简化了构建过程。
  • 插件机制:Maven 通过插件扩展其功能,可以轻松实现各种构建任务(如生成文档、代码分析、部署等)。

多模块项目支持

  • 模块化管理:Maven 支持多模块项目管理,允许多个模块共享一个父项目配置,简化了大型项目的管理。
  • 子模块继承:子模块可以继承父项目的依赖和配置,提高了配置的复用性和一致性。

集成与扩展

  • IDE 支持:Maven 与大多数主流 IDE(如 Eclipse、IntelliJ IDEA)集成良好,提供了良好的开发体验。
  • CI/CD 支持:Maven 易于与持续集成/持续部署(CI/CD)工具(如 Jenkins)集成,支持自动化构建和部署流程。

依赖版本控制

  • 版本管理:Maven 能够方便地管理和控制依赖库的版本,确保项目使用的是兼容的库版本。

缺点

学习曲线

  • 复杂性:Maven 的配置和生命周期相对复杂,对于初学者来说有一定的学习曲线,需要花时间理解其工作原理和配置方式。

性能问题

  • 构建速度:Maven 构建过程中的依赖下载和插件执行可能会导致构建速度较慢,特别是在网络不稳定或依赖较多的情况下。
  • 本地仓库:由于 Maven 使用本地仓库来缓存依赖,如果本地仓库损坏或依赖较多,可能会导致构建问题和性能下降。

灵活性不足

  • 配置限制:Maven 遵循“约定优于配置”的理念,虽然减少了配置复杂性,但在某些特殊需求下,可能显得不够灵活,需要编写自定义插件或脚本。

约定大于配置:源代码默认放在 src/main/java,测试代码放在 src/test/java,资源文件放在 src/main/resources 等。
如果你的项目不遵循默认的目录结构,例如源代码放在 src/java 而不是 src/main/java,你需要额外配置来告诉 Maven如何找到源代码。

依赖冲突

  • 版本冲突:尽管 Maven 有依赖调解机制,但在某些复杂依赖关系下,版本冲突仍然可能导致构建问题,需要手动解决。

社区支持

  • 插件质量不一:Maven 社区提供了大量插件,但插件的质量和维护情况不一,有些插件可能缺乏文档或不再维护。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.[今日课程内容总览] Maven--***** 介绍 优点 用maven创建一个项目, 用maven创建一个ssm项目,每一层的代码分开,把一个项目拆解成多个项目 2.[今日包含笔记] maven介绍: Eclise: 缺点: Jar包: 版本管理,解决jar包冲突:删除老的jar包,保留新的jar包 不同的项目,jar包要复制一份;Users Library 羡慕yum的好处,安装软件,自动下载,自动验证,自动安装,自动测试;镜像网站 Jar包的依赖: 致命的缺点:现象: 每一个项目都有前台(广大网民)和后台(管理员看的),后台的功能远远的大于>前台的功能;迭代升级;每次升级都要重启tomcat;将tomcat做很多个备份(10个),为了nginx转发;前台:访问比较大,管理员访问量比较小; 问题: 每次升级,10个tomcat都升级一次 后台的升级频繁要比前台频繁;升级10次,9次改的是后台的代码,只有一次是前台的代码 解决方案: 是将前台(广大网民看的页面)的代码和后台(管理员)的代码要分开,将原来的一个项目分别放到两个web项目;一个web项目一个tomcat;好处:更新的时候如果更新后台(管理员),只需要重启后台的tomcat(服务); 折成两个项目以后的缺点:Service以下的代码重复; 将Service层以下的代码放到一个新创建的java项目中,在部署的时候将Service(java项目)打成一个jar包,分别放到两个web服务中;编译的时候让web项目依赖与Service(java项目)_source folder;配置麻烦,项目与项目之间的依赖头脑得相当清晰 这个缺点Maven解决了; 请听今天的内容 拆分前:图一 拆分后是图二 3. 介绍 官网:http://maven.apache.org/download.cgi 目录介绍: Bin:二进制文件 Boot:引导,启动 Conf:配置文件 Lib:jar包 README.txt:读我 3.1.修改配置文件的内容 路径:%MAVEN_HOME%\conf\settings.xml 配置文件代码: d:/repo alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central 注意: 千万不要将文档中的setting的内容全部替换到maven中的内容,要对比着修改,保留原来的; 只修改本地仓库,和下载镜像(源) 3.2.Eclipse Maven的配置 每打开一个新的工作空间,要配置一下Maven,然后再写代码 3.3.创建Maven项目 右击创建一个maven project Packing:有三种: Jar:java项目, War:web项目 Pom:文件夹,jar和war文件,mavenProject:一个项目,可以放jar和war包,通过pom,一般新创建的maven Project是POM 3.4.创建一个Maven Model 最外面的项目是MavenProject,其它的全部是Maven Model 3.4.1.创建JAR 目录介绍: Mvn-jar |-->Src:源码:java代码 |-->|-->main:代码:除测试以外的代码:junit |-->|-->main|-->java:代码 |-->|-->main|--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值