zoukankan      html  css  js  c++  java
  • 第三章 Maven-pom.xml文件

    一、POM概述

    POM是Project Object Model/项目对象模型的缩写。pom.xml文件中包含了依赖关系、构建目录、源目录、测试源目录、插件、目标等项目信息和配置信息。Maven读取pom.xml文件,然后执行构建目标。
    

    二、pom.xml文件的基本元素

    一个pom.xml文件至少需要包含以下元素:
    
    元素 描述
    project pom文件根元素,表示一个项目
    modelVersion project元素的子元素,指定modelVersion版本号,应该设置4.0.0
    groupId project元素的子元素,指定项目所属的group
    artifactId project元素的子元素,项目交付件ID,项目交付件是指项目的最终交付文件,如jar、zip、war�?/span>
    version project元素的子元素,项目(交付件)的版本号
    # 示例:
    <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">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.test.demo</groupId>
        <artifactId>mytest-demo</artifactId>
        <version>0.0.1</version> 
    
    </project>  
    

    三、pom.xml文件的常用元素

    除了基本元素,下面是pom文件的一些常用元素:
    
    元素 描述
    packaging 定义打包类型,如jar, war
    name 指定项目名称
    url 指定项目url
    dependencies 表示项目依赖项列表
    dependency 表示单个依赖项,这个元素是依赖项列表元素的子元素
    scope 单个依赖项的作用域,作用域可以是compile、test、runtime、provided、system之一,作用域的意图是限定该依赖项作用范围,如test,则表明依赖项只在test时起作用
    # 示例:
    
    <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">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.test.demo</groupId>
        <artifactId>test-demo</artifactId>
        <version>0.0.1</version>  
        <packaging>jar</packaging>  
    
        <name>mytest demo </name>  
        <url>http://192.168.1.18:524</url>  
    
        <dependencies>  
            <!-- https://mvnrepository.com/artifact/junit/junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13-beta-2</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>  
    
    </project>  
    

    四、pom 继承

    所有Maven POM文件都继承自一个父POM。如果没有指定,则POM文件默认继承自基本POM (base POM)。如下图所示:
    

    # 可以使POM文件显式地继承另一个POM文件,示例:
    
    <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">
        <modelVersion>4.0.0</modelVersion>
    
        <parent>
            <groupId>com.test.demo</groupId>
            <artifactId>my-parent</artifactId>
            <version>2.0</version>
            <relativePath>../my-parent</relativePath>
        </parent>
    
    
        <artifactId>my-project</artifactId>
        ...
    </project>
    
    ps:子POM文件可以覆盖父POM文件的设置
    

    五、生效 pom

    使用pom继承时,很难清楚知道最终的生效pom是怎么样的,可以通过以下命令展示最终生效的pom内容:
    
    mvn help:effective-pom
    

    六、Maven项目的目录结构

    Maven项目有标准的目录结构。如果遵循该目录结构,就不需要在POM文件中指定源代码、测试代码等目录。
    
    #1.下面介绍几个最重要的目录:
    - src
      - main
        - java
        - resources
      - test
        - java
        - resources
    
    - target
    
    #2.重要目录含义:
    - src目录是源代码和测试代码的根目录,main目录是项目源代码(不含测试目录)的根目录,test目录包含测试源代码
    
    - resources目录是资源目录
    
    - 如果项目是web应用程序,则webapp目录包含Java web应用程序。webapp目录将成为web应用程序的根目录,包含WEB-INF目录等
    
    - 目标目录由Maven创建,包含Maven生成的所有已编译类、JAR文件等。在执行clean构建阶段时,目标目录会被清除
    
  • 相关阅读:
    fedora上部署ASP.NET——(卡带式电脑跑.NET WEB服务器)
    SQL Server 请求失败或服务未及时响应。有关详细信息,请参见事件日志或其它适合的错误日志
    8086CPU的出栈(pop)和入栈(push) 都是以字为单位进行的
    FTP 服务搭建后不能访问问题解决
    指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
    Linux 安装MongoDB 并设置防火墙,使用远程客户端访问
    svn Please execute the 'Cleanup' command. 问题解决
    .net 操作MongoDB 基础
    oracle 使用绑定变量极大的提升性能
    尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
  • 原文地址:https://www.cnblogs.com/jhno1/p/15134037.html
Copyright © 2011-2022 走看看