maven的基本概念

maven是干嘛的

mvn是项目管理工具。通过mvn可以对java项目进行依赖管理和项目构建。

maven坐标的概念

maven的坐标俗称gav。通过gav可以定位一个Maven工程。

  • groupid :公司或组织名
  • artifactid : 模块名(实际项目名)
  • version :当前项目的版本
com.mayn
oms
3.4

maven依赖的导入
需要的依赖可以去maven仓库寻找,复制需要的dependencypom文件。

maven仓库地址

eg:

    
        1.4.0
    

    
          
            
            
                org.apache.shiro
                shiro-core
                ${shiro.version}
            
        
    

maven引入外部依赖



    com.jd
    jingdong-pop-api-sdk
    2.0
    system
    ${project.basedir}/src/main/resources/sdk/open-api-sdk-2.0.jar

依赖的范围

dependencyscope属性表示依赖的范围,具体如下:

  1. compile 范围依赖
    对主程序是否有效:有效
    对测试程序是否有效:有效
    是否参与打包:参与
    是否参与部署:参与
    典型例子:log4j
  2. test 范围依赖
    对主程序是否有效:无效
    对测试程序是否有效:有效
    是否参与打包:不参与
    是否参与部署:不参与 
    典型例子:Junit
  3. provided 范围依赖
    对主程序是否有效:有效  
    对测试程序是否有效:有效
    是否参与打包:不参与  
    是否参与部署:不参与
    典型例子:servlet-api.jar,一般在发布到 服务器中,比如 tomcat,服务器会自带 servlet-api.jar 包,所以provided 范围依赖只在编译测试有
  4. runtime 范围依赖:在测试、运行的时候依赖,在编译的时候不依赖。例如:JDBC驱动,项目代码只需要jdk提供的jdbc接口,只有在执行测试和运行项目的时候才需要实现jdbc的功能。

依赖排除

springboot内嵌Tomcat,需要用外部Tomcat启动程序时,需要排除自带的Tomcat。使用exclusions排除内嵌依赖。


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

依赖的冲突

  1. 同一个pom文件冲突
    同一个pom.xml 文件,先申明者优先。
    pom文件中越往下越优先声明,优先级越高。
  2. pom文件,路径最短者优先。

maven的常用命令

  1. mvn compile 编译,将Java 源程序编译成 class字节码文件。
  2. mvn test 测试,并生成测试报告。
  3. mvn clean 将以前编译得到的旧的 class字节码文件删除。
  4. mvn pakage 打包,动态 web工程打 war包,Java工程打jar包。
  5. mvn install 将项目生成jar包放在仓库中,以便别的模块调用。

你可能感兴趣的:(maven的基本概念)