Maven的pom.xml的格式与约束

<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/maven-v4_0_0.xsd">
    <!--指定了当前pom的版本,4.0.0是固定的 -->
    <modelVersion>4.0.0</modelVersion>
 
    <!-- 主项目标识,用来定义当前maven属于哪个实际的项目 -->
    <groupId>反写的公司网址 + 项目名</groupId>
    <!-- 模块名,maven项目和实际的项目不是一一对应的关系,maven项目提现的是模块化的概念,一个实际项目往往会被划分为很多个模块 -->
    <artifactId>项目名 + 模块名</artifactId>
    <!-- 当前项目版本号,一般有三个数字组成 第一个数字:大版本号 第二个数字:分支版本号 第三个数字:先版本号 snapshot: 快照 alpha: 
        内测版本 beta: 公测版本 Release: 稳定版本 GA: 正式发布版本 -->
    <version>0.0.1snapshot</version>
    <!-- maven项目打包方式,默认情况为jar,还可打包为war,zip,pom等 -->
    <packaging></packaging>
    <!-- 项目描述名 -->
    <name></name>
    <!-- 项目地址 -->
    <url></url>
    <!-- 项目描述 -->
    <description></description>
    <!-- 开发人员列表 -->
    <developers></developers>
    <!-- 许可证信息 -->
    <licenses></licenses>
    <!-- 组织信息 -->
    <organization></organization>
 
    <!-- 依赖列表 -->
    <dependencies>
        <!-- 依赖项目 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <type></type>
            <!-- 依赖范围,控制依赖与三种依赖范围的关系 -->
            <!-- 开发中要使用某一个jar,就要将该jar包引入到项目的classpath中 -->
            <!-- maven提供了三种classpath: 1.编译 2.测试 3.运行 -->
            <!-- 下面的test表明junit只存在于测试的classpath中 -->
            <!-- maven为scope提供了六个属性:
                                    compile(默认,编译测试运行都有效), 
                                    provided(编译和测试)servlet, 
                                    runtime(测试和运行)jdbc, 
                                    test(测试)junit, 
                                    system(编译和测试,与本机系统相关联,可移植性差), 
                                    import(导入的范围,只使用在dependencyManagerment中,表示从其他的pom中导入dependency的配置) -->
            <scope>test</scope>
            <!-- 设置依赖是否可选 -->
            <!-- 有两个值,true和false,默认是false,继承,若为true,子项目必须显式的引用该依赖 -->
            <optional></optional>
            <!-- 排除依赖传递的列表 -->
            <exclusions>
                <exclusion>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
 
    <!-- 依赖管理 -->
    <dependencyManagement>
        <!-- 这里定义的依赖不会被运行,即不会被引用为实际的依赖,主要是供子模块集成用 -->
        <dependencies>
            <dependency></dependency>
        </dependencies>
    </dependencyManagement>
 
    <!-- 为构建行为提供相应的支持 -->
    <build>
        <!-- 插件列表 -->
        <plugins>
            <!-- 插件 -->
            <plugin>
                <groupId></groupId>
                <artifactId></artifactId>
                <version></version>
            </plugin>
        </plugins>
    </build>
 
    <!-- 用于子模块中对于父模块的继承 -->
    <parent></parent>
    <!-- 聚合运行多个maven项目 -->
    <modules>
        <module></module>
    </modules>
 
</project>
原文地址:https://www.cnblogs.com/q1359720840/p/10465933.html