zoukankan      html  css  js  c++  java
  • pom文件详解

    pom:
        POM是项目对象模型(Project Object Model)的简称
        setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;
        而pom.xml主要描述了项目的maven坐标,该文件用于管理:源代码、配置文件、开发者的信
        息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。是项目级别的配置文件。
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
        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的版本
        <modelVersion>4.0.0</modelVersion>
        
        //坐标信息标签    <基础设置>
        //公司或者组织的唯一标志,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成,
          如x.xx.xxx生成的相对路径为:/x/xx/xxx/
        <groupId>x.xx.xxx</groupId>
        //本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的;
        <artifactId>项目名</artifactId>
        //打包的机制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默认为jar;
        <packaging>pom</packaging>
        //项目当前的版本号
        <version>1.0.0</version>
        //
        <inceptionYear>2018-Now</inceptionYear>
        //另起一个项目名展示给用户
        <name>maven</name>
        //项目主页的URL, Maven产生的文档用  
        <url>http://www.baidu.com/banseon</url>    
        //项目的详细描述, Maven 产生的文档用。
        <description>A maven project to study maven.</description>
        
        //父项目标签
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.3.RELEASE</version>
            //父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。
            默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,
            其次在文件系统的这个位置(relativePath位置),然后在本地仓库,
            最后在远程仓库寻找父项目的pom。
            <relativePath />
        </parent>
        
        //为pom定义一些常量,在pom中的其它地方可以直接引用
        <properties>
            //java版本
            <java.version>1.8</java.version>
            <maven.test.skip>true</maven.test.skip>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <eclipse-plugin-download-sources>false</eclipse-plugin-download-sources>
            <eclipse-plugin-download-javadocs>false</eclipse-plugin-download-javadocs>

            <main.basedir>${basedir}</main.basedir>

            <spring-cloud-dependencies.version>Finchley.RELEASE</spring-cloud-dependencies.version>
            //自定义标签    引用时使用${gjyf-dependencies.version}
            <gjyf-dependencies.version>2.0.0-SNAPSHOT</gjyf-dependencies.version>
        </properties>
        
        //定义本项目的依赖关系  
        //继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,它并不会被运行,就是不会营造实际的依赖,
          主要用于父模块中定义供子模块使用,而当子项目声明一个依赖(必须描述group ID和artifact ID信息),
          如果group ID和artifact ID以外的一些信息没有描述,则通过
          group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。
        <dependencyManagement>
            <dependencies>
                //参见dependencies/dependency元素
                <dependency>
                    eg:
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>3.8.1</version>
                    //标签内为test时表示该项依赖(这个jar)只能在test时起到作用,打包编译发布后不起作用
                    //scope属性值:
                        //compile:默认的范围,在编译测试,运行都有效,在依赖项dependency中不写,也就是不指定scope标签,即表示默认;
                        //provided:在编译和测试的时候有效
                        //runtime:在测试和运行时有效
                        //test:只在测试范围内有效
                        //system:在编译和测试是有效,与本机系统相关联,可移植性差
                        //improt:导入的依赖范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependency的配置。
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
        
        //构建配置
        <build>
            //项目相关的所有资源路径列表,例如和项目相关的配置文件、属性文件,这些资源被包含在最终的打包文件里.
            <resources>  
                <resource>
                    //描述存放资源的目录,该路径相对POM路径
                    <directory>src/main/resources</directory>
                </resource>
                <resource>
                    //描述存放资源的目录,该路径相对POM路径
                    <directory>src/main/java</directory>
                    //包含的模式列表
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            <resources/>
            
            //使用的插件列表.
            <plugins>  
                //描述插件所需要的信息。
                <plugin>  
                    //插件在仓库里的group ID
                    <groupId>  </groupId>
                    //插件在仓库里的artifact ID
                    <artifactId>   </artifactId>
                    //被使用的插件的版本(或版本范围)
                    <version>   </version>
                <plugin/>
            <plugins>
        <build/>
        
        
        
        //模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径
            <modules>
                <!--子项目相对路径-->
                <module></module>
            </modules>

    。。。
  • 相关阅读:
    vuex 简单理解
    es2015(es6)学习总结
    工作资源知识点总结收集
    margin-top使用需要注意的地方
    关于用display:table让元素居中的小结
    display:table-cell
    margin:0 auto;不居中
    css选择器总结
    css 选择器优先级
    给行内元素加上绝对定位之后,元素属性的变化
  • 原文地址:https://www.cnblogs.com/MrYangSX/p/11590738.html
Copyright © 2011-2022 走看看