Maven

Maven


文章目录

  • Maven
  • 一、Maven简介?
  • 二、Maven主要作用
    • 1.依赖导入
    • 2.依赖管理
    • 3.项目构建
  • 三,Maven工程介绍
    • 1.GAVP属性
    • 2,Maven项目结构
  • 三、Maven核心功能依赖和构建管理
    • 1,Maven依赖管理
    • 2,项目构建
  • 四,Maven继承聚合特性
    • 1 ,Maven工程继承关系
    • 2,Mevan工程聚合
  • 总结


一、Maven简介?

Maven 是一款为 Java 项目构建管理、依赖管理的工具,使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.

二、Maven主要作用

1.依赖导入

通过配置maven工程的pom文件,可以将我们项目需要第三方库(依赖),如Druid连接池、MySQL数据库驱动等下载到我们的项目中来

2.依赖管理

Maven 可以管理项目的依赖,包括自动下载所需依赖库、自动下载依赖需要的依赖并且保证版本没有冲突、依赖版本管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,而我们仅仅需要编写配置即可。

3.项目构建

Maven 可以管理项目的依赖,包括自动下载所需依赖库、自动下载依赖需要的依赖并且保证版本没有冲突、依赖版本管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,而我们仅仅需要编写配置即可。

三,Maven工程介绍

1.GAVP属性

GAVP是指GroupId、ArtifactId、Version、Packaging等四个属性,其中前三个是必要的,这四个属性主要用于在Maven仓库中为每个项目做一个标识,方便后期项目之间相互引用依赖等。
1:GroupId:格式为com.{公司/BU}.业务线.[子业务线],最多4级。例如:com.taobao.tdd。
2:ArtifactId:格式为产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。例如:tc-client
3:Version:版本号,格式推荐为主版本号.次版本号.修订号。例如:初始→1.0.0,调整模块2.0.0,修bug→1.0.1,功能调整→1.1.0等。
4:Packaging:指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型。

  • packaging属性为jar,代表普通的Java工程,打包以后是.jar结尾的文件。
  • packaging属性为war,代表Java的web工程,打包以后是.war结尾的文件。
  • packaging属性为pom表示这是一个聚合项目,这意味着这个项目不包含Java代码或资源,只是为了聚合其他子模块或工程而存在的。
    com.zjr
    maven_parent
    1.0-SNAPSHOT
    pom

2,Maven项目结构

Maven_第1张图片

  • pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。
  • src/main/java:存放项目的 Java 源代码。
  • src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
  • src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
  • src/main/webapp/index.html:Web 应用的入口页面。
  • src/test/java:存放项目的测试代码。
  • src/test/resources:存放测试相关的资源文件,如测试配置文件等。

三、Maven核心功能依赖和构建管理

1,Maven依赖管理

在pom文件下可以的标签下配置需要导入的依赖,可以通过里面定义属性的方式去同意控制版本(作用类似与C语言中define的参数,只是进行字符替换)

  
    
    2.16.0
  

  

    
      com.fasterxml.jackson.core
      jackson-core
      
      ${jackson.verson}
    
  


2,项目构建

Maven提供了一套标准化的构建流程,包括编译、测试、打包、发布等,使用简单的命令就能完成项目的构建。
1:自动化构建:Maven能够自动化构建项目,通过定义好的生命周期和插件,自动完成项目的编译、测试、打包、部署等过程,减少了手动操作。
2:丰富的插件支持:Maven有丰富的插件支持,可以方便地扩展和定制构建过程,满足不同的构建需求。
版本管理:Maven能够方便地管理项目的版本,通过版本号的管理,可以方便地跟踪和回溯项目的历史版本。

  • Maven命令的生命周期是指通过执行Maven命令来触发相应的构建阶段。Maven构建过程中会按照预设的阶段顺序执行,每个阶段都会调用相应的插件来完成特定的任务。
    清理阶段:执行pre-clean和clean阶段,清理上一次构建生成的文件。
    编译阶段:执行compile阶段,编译项目的源代码。
    测试阶段:执行test阶段,使用合适的单元测试框架来测试已编译的源代码。
    打包阶段:执行package阶段,将编译好的代码打包成可发布的格式。
    部署阶段:执行install阶段,将打包好的项目安装到本地仓库,供其他项目引用。
    除了上述的生命周期,Maven还提供了其他命令来执行特定的构建阶段,如mvn test只执行测试阶段,mvn package只执行编译、测试和打包阶段等。这些命令可以根据实际需要灵活使用,以便快速构建或跳过某些不必要的阶段。

四,Maven继承聚合特性

1 ,Maven工程继承关系

Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。注意父工程打包方式为pom,子工程要用来指定所继承的父工程,优点如下

  • 统一管理依赖,子工程的可以继承父工程的依赖,或是父工程声明的依赖,保证了整个项目规范、准确使用 jar 包

父工程配置如下


    
    
        
        sonA
        sonB
    

    
    
    
        
            
                org.springframework
                spring-core
                
                ${springframework.version}
            
            
                org.springframework
                spring-beans
                4.0.0.RELEASE
            
        
    

子工程如下

 
    
        
        com.zjr
        maven_parent
        1.0-SNAPSHOT
    

    
    
    
    sonA

    
    
    
    
        
            org.springframework
            spring-core
        
    

2,Mevan工程聚合

  1. 聚合概念
    Maven 聚合是指将多个项目组织到一个父级项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程。
  2. 聚合作用
    1. 统一管理子项目构建:通过聚合,可以将多个子项目组织在一起,方便管理和维护。
    2. 优化构建顺序:通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况。
  3. 一般来说构建了继承关系maven就会在父工程中自动添加聚合关系,但是要明白,若有一个模块不需要随着父工程一起被构建,是可以在父工程中去掉聚合配置的。
   
    
    
        
        sonA
        sonB
    

总结

此文章参考了wolai

你可能感兴趣的:(JavaEE,maven)