pom文件详解

pom:
    POM是项目对象模型(Project Object Model)的简称
    setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;
    而pom.xml主要描述了项目的maven坐标,该文件用于管理:源代码、配置文件、开发者的信
    息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。是项目级别的配置文件。

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    //pom版本标签
    //必须标签,表示是一个固定的版本,指定了当前pom的版本
    4.0.0
    
    //坐标信息标签    <基础设置>
    //公司或者组织的唯一标志,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成,
      如x.xx.xxx生成的相对路径为:/x/xx/xxx/
    x.xx.xxx
    //本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的;
    项目名
    //打包的机制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默认为jar;
    pom
    //项目当前的版本号
    1.0.0
    //
    2018-Now
    //另起一个项目名展示给用户
    maven
    //项目主页的URL, Maven产生的文档用  
    http://www.baidu.com/banseon    
    //项目的详细描述, Maven 产生的文档用。
    A maven project to study maven.
    
    //父项目标签
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.3.RELEASE
        //父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。
        默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,
        其次在文件系统的这个位置(relativePath位置),然后在本地仓库,
        最后在远程仓库寻找父项目的pom。
        
    

    
    //为pom定义一些常量,在pom中的其它地方可以直接引用
    
        //java版本
        1.8
        true
        UTF-8
        false
        false

        ${basedir}

        Finchley.RELEASE
        //自定义标签    引用时使用${gjyf-dependencies.version}
        2.0.0-SNAPSHOT
    

    
    //定义本项目的依赖关系  
    //继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,它并不会被运行,就是不会营造实际的依赖,
      主要用于父模块中定义供子模块使用,而当子项目声明一个依赖(必须描述group ID和artifact ID信息),
      如果group ID和artifact ID以外的一些信息没有描述,则通过
      group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。
   
       
            //参见dependencies/dependency元素
           
                eg:
                junit
                junit
                3.8.1
                //标签内为test时表示该项依赖(这个jar)只能在test时起到作用,打包编译发布后不起作用
                //scope属性值:
                    //compile:默认的范围,在编译测试,运行都有效,在依赖项dependency中不写,也就是不指定scope标签,即表示默认;
                    //provided:在编译和测试的时候有效
                    //runtime:在测试和运行时有效
                    //test:只在测试范围内有效
                    //system:在编译和测试是有效,与本机系统相关联,可移植性差
                    //improt:导入的依赖范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependency的配置。
                test
           

       

   

    
    //构建配置
    
        //项目相关的所有资源路径列表,例如和项目相关的配置文件、属性文件,这些资源被包含在最终的打包文件里.
          
            
                //描述存放资源的目录,该路径相对POM路径
                src/main/resources
            

            
                //描述存放资源的目录,该路径相对POM路径
                src/main/java
                //包含的模式列表
                
                    **/*.xml
                

            

        
        
        //使用的插件列表.
          
            //描述插件所需要的信息。
              
                //插件在仓库里的group ID
                 
                //插件在仓库里的artifact ID
                  
                //被使用的插件的版本(或版本范围)
                  
            
        
    
    
    
    
    //模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径
       
           
           
       

你可能感兴趣的:(pom文件详解)