zoukankan      html  css  js  c++  java
  • 二:Maven中pom.xml元素详解

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6628201.html 

        一个pom.xml中包含了许多标签,各个标签是对项目生命周期、依赖管理的配置。常用的主要有:

        1:<peoject>:pom.xml的根标签,一个maven项目用一对<peoject></project>标签包裹。

        2:<modelVersion>:maven的版本

        3:当前项目的坐标以及打包方式:

            <groupId>:企业网址反写+项目名

            <artifactId>:项目名-模块名

            <version>:版本号+类型

                            版本号由三个整数表示,每个整数用“.”分隔,表示:大版本号.分支版本号.小版本号

                            类型:版本类型。主要有:snapshot快照版本(简化版本)、alpha内测版、beta公测版、release稳定版、GA正式发布版

            <packaging>:打包类型,默认是jar,可以配置成war、zip、pom类型。

        4:<name>:当前项目名

        5:<url>:项目地址

        6:<description>:项目描述信息

        7:<developers>:开发者信息

        8:<licenses>:项目许可证信息,用来发布时授予别人使用此项目的权利

        9:<organization>:组织信息,企业信息

        以上都是对这个maven项目的相关信息配置。

        10:<properties>:属性值标签,也叫变量标签。与Ant中的property一样,可以通过这个标签包含一些属性并指定属性值。那么在pom.xml的其他地方,可以通过EL表达式访问变量的方法——${属性名}  来获取具体的属性值。一般这个用来作为整个pom.xml中需要重复使用的内容或者全局变量使用。

        11:依赖标签

    <dependencies>
    
        <!--一个依赖包-->
        <dependency>
    
           <!--通过坐标指定依赖包-->
            <groupId>        </groupId>
            <artifactId>      </artifactId>
            <version>        </version>
    
            <!--可选项:依赖范围。有六个可选值:常用compile/provided/test/runtime等-->
            <scope>一个范围</scope>
            <!--可选项:排除依赖传递:即:当前项目依赖当前配置的依赖包A时,如果这个依赖包又依赖其他包B,这里可以选择排除依赖的传递性,不下载导入B-->
             <exclusions>
                <exclusion>
                  <!--被排除的依赖包坐标-->
                  <groupId> </groupId>
                  <artifactId> </artifactId>
                  <version> </version>
                </exclusion>
             </exclusions>
        </dependency>
    </dependencies>

        12:依赖管理标签:主要用于制定父pom.xml,其他项目可以继承这个pom.xml,从而避免重复定义某些depency。

    <depencyManagement>
        <depencies>
           <depency>
               依赖包的坐标...
           </depency>
        </depencies>
    </depencyManagement>

        13:<build>:项目支持标签,一般用来引入插件

    <build>
        <plugins>
          <plugin>
             <!--插件坐标-->
             <groupId>         </groupId>
             <artifactId>         </artifactId>
             <version>         </version>
    
             其他设置...
    
          </plugin>
        </plugins>
    </build>

        14:<parent>:继承标签,用于继承父项目。

        15:<moudules>:聚合标签,用于聚合多个maven项目,这样用某指令执行这个pom就会把聚合的各项目全部执行,同时处理多个项目。

        示例:一个简单的构建JavaWeb项目的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">
      
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.test</groupId>
      <artifactId>WebApp</artifactId>
      <packaging>war</packaging>
      <version>1.0</version>
      
      <name>WebApp Maven Webapp</name>
      <url>http://maven.apache.org</url>
      
      <dependencies>    
        <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.2.1</version>
        </dependency>
        
        <!--commons-io为commons-fileupload的可选依赖包-->
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>1.3.2</version>
        </dependency>
      </dependencies>
      
      <build>
        <finalName>WebApp</finalName>
      </build>
    </project>
  • 相关阅读:
    net core 3.1 发布问题
    KCF追踪方法流程原理
    2
    1
    0
    LK光流算法公式详解
    MySql单表最大8000W+ 之数据库遇瓶颈记
    Quartz.net基于数据库的任务调度管理(Only.Jobs)
    轻量级代码生成器-OnlyCoder 第二篇
    轻量级代码生成器-OnlyCoder 第一篇
  • 原文地址:https://www.cnblogs.com/NiceCui/p/7798779.html
Copyright © 2011-2022 走看看