4: Maven基本命令 仓库 坐标 依赖 聚合 继承 pom.xml详解

Maven基本命令

-v:查询Maven版本

本命令用于检查maven是否安装成功。
Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。

compile:编译

将java源文件编译成class文件

test:测试项目

执行test目录下的测试用例

package:打包

将项目打成jar包

clean:删除target文件夹
install:安装

Maven仓库

Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库 和 中央仓库。

  • 本地仓库
    Maven本地的Jar包仓库。
  • 中央仓库
    Maven官方提供的远程仓库。
    当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包

坐标

在Maven中,坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。

在创建Maven项目时,groupId和artifactId构成了一个Jar包的坐标。

4: Maven基本命令 仓库 坐标 依赖 聚合 继承 pom.xml详解_第1张图片
Paste_Image.png

项目创建后,在pom.xml中


4: Maven基本命令 仓库 坐标 依赖 聚合 继承 pom.xml详解_第2张图片
Paste_Image.png

依赖

  • 传递依赖:如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和简洁引用的Jar包都下载到本地。
  • 排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml中做如下配置:(将需要排除的Jar包的坐标写在中)

    
        ch.qos.logback
        logback-classic
    

依赖冲突

若项目中多个Jar同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了两种避免冲突的策略,因此在Maven中是不存在依赖冲突的。

  • 短路优先
    本项目——>A.jar——>B.jar——>X.jar
    本项目——>C.jar——>X.jar
    若本项目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,并且C.jar也引用了X.jar。
    在此时,Maven只会引用引用路径最短的Jar。

  • 声明优先
    若引用路径长度相同时,在pom.xml中谁先被声明,就使用谁。

聚合

  • 什么是聚合?
    将多个项目同时运行就称为聚合。

  • 如何实现聚合?
    只需在pom中作如下配置即可实现聚合:


        ../模块1
        ../模块2
        ../模块3
    

继承

继承

  • 什么是继承?
    在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom即可。

  • 如何实现继承?
    1: 父pom配置:将需要继承的Jar包的坐标放入标签即可。


        
            
                org.apache.shiro
                shiro-spring
                1.2.2
             
        
    
  • 子pom配置:

    父pom所在项目的groupId
    父pom所在项目的artifactId
    父pom所在项目的版本号

pom.xml详解

pom.xml是Maven的核心,你的项目需要什么Jar包就在pom.xml里面配置。当编译项目时Maven读取该文件,并从仓库中下载相应的Jar包。

     
        
        
         
         
         
         
         
         
         
         
     
        
    4.0.0     
         
    cn.erhuowang     
         
    erhuowang-maven2     
         
    war     
         
    1.0-SNAPSHOT     
         
    erhuo-maven     
         
    http://erhuowang.cn     
         
    A maven project to study maven.     
        
     
      
        
     
      
        
          
        erhuowang     
            
        http://erhuowang.cn     
         
        
     
      
      
      
      
      
      
       
       
        
        
        
        
        
        
        
        
        
        
        
    
Demo [email protected] [email protected] [email protected] [email protected] HELLO WORLD chaimm [email protected] Project Manager Architect demo http://erhuowang.cn No -5 Apache 2 http://www.baidu.com/erhuwoang/LICENSE-2.0.txt repo A business-friendly OSS license scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk) scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk http://svn.baidu.com/banseon demo http://www.erhuowang.cn ...... ...... Windows XP Windows x86 5.1.2600 mavenVersion 2.0.3 /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ ...... ...... ...... ...... ...... ...... banseon-repository-proxy banseon-repository-proxy http://192.168.1.169:9999/repository/ default ...... org.apache.maven maven-artifact 3.8.1 jar test spring-core org.springframework true ...... banseon-maven2 banseon maven2 file://${basedir}/target/deploy banseon-maven2 Banseon-maven2 Snapshot Repository scp://svn.baidu.com/banseon:/usr/local/maven-snapshot banseon-site business api website scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web

你可能感兴趣的:(4: Maven基本命令 仓库 坐标 依赖 聚合 继承 pom.xml详解)