zoukankan      html  css  js  c++  java
  • Maven


    章节


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

    pom.xml文件的基本元素

    一个pom.xml文件至少需要包含以下元素:

    元素描述
    project pom文件根元素,表示一个项目
    modelVersion project元素的子元素,指定modelVersion版本号,应该设置为4.0.0
    groupId project元素的子元素,指定项目所属的group
    artifactIdproject元素的子元素,项目交付件ID,项目交付件是指项目的最终交付文件,如jar、zip、war等
    versionproject元素的子元素,项目(交付件)的版本号

    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/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.qikegu.demo</groupId>
    	<artifactId>mybatis-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时起作用

    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/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.qikegu.demo</groupId>
        <artifactId>mybatis-demo</artifactId>
        <version>0.0.1</version>  
        <packaging>jar</packaging>  
        
        <name>mybatis demo </name>  
        <url>http://www.qikegu.com</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)。如下图所示:

    image

    可以使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.qikegu.demo</groupId>
            <artifactId>my-parent</artifactId>
            <version>2.0</version>
            <relativePath>../my-parent</relativePath>
        </parent>
        
    
        <artifactId>my-project</artifactId>
        ...
    </project>
    

    子POM文件可以覆盖父POM文件的设置。

    生效 pom

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

    mvn help:effective-pom
    

    Maven项目的目录结构

    Maven项目有标准的目录结构。如果遵循该目录结构,就不需要在POM文件中指定源代码、测试代码等目录。

    如需详细了解,可参考官方文档

    下面介绍几个最重要的目录:

    - src
      - main
        - java
        - resources
      - test
        - java
        - resources
    
    - target
    
    • src目录是源代码和测试代码的根目录,main目录是项目源代码(不含测试目录)的根目录,test目录包含测试源代码。
    • resources目录是资源目录。
    • 如果项目是web应用程序,则webapp目录包含Java web应用程序。webapp目录将成为web应用程序的根目录,包含WEB-INF目录等。
    • 目标目录由Maven创建,包含Maven生成的所有已编译类、JAR文件等。在执行clean构建阶段时,目标目录会被清除。
  • 相关阅读:
    如何优化软件测试成本?——转译
    Pytest(下篇)
    人与机器人如何协同来测试软件——译
    Appium自动化测试遇到的chromedriver/chrome坑
    Pytest(上篇)
    【selenium】利用selenium进行爬虫时,防止js检测驱动的方法
    【python】python分词和识别图像中的文字
    【python】Python获取QQ截图热键(ctrl+alt+a)截取的内容
    【python】pyinstaller如何将自己写的模块一并打包到exe中
    【python】python启动线程查看线程的名称和id;python杀掉进程的方法
  • 原文地址:https://www.cnblogs.com/jinbuqi/p/11081247.html
Copyright © 2011-2022 走看看