当前位置: 首页>大数据>正文

maven 的 GAVP 及 pom.xml文件


  Maven 中的 GAVP 是指,GroupId、ArtifactId、Version、Packaging,
  
  其中前三个是必要的,Packaging是可选的,

  这四个属性,为每个项目在maven仓库做一个标识,方便maven软件对项目进行管理个相互引用

GroupId

GroupId:

  格式:com.{ 公司 / BU }.业务线.{ 子业务线 } ,最多4段

  如:com.taobao.tdd、com.alibaba.sourcing.mutilang、com.atguidgu.java

注:groupId,代表项目的组织或公司,不会频繁改变

ArtifactID

ArtifactID:

  格式:产品线名-模块名

  如:tc-client、uic-api、tair-tool、bookstore

注:artifactId,代表项目的具体模块或应用,不会频繁改变

Version

Version:

  版本号格式推荐:主版本号.次版本号.修订号

  主版本号:当做了不兼容api修改,或增加了能改变产品方向的新功能

  次版本号:当做了向下兼容的功能性新增(新增类、接口等)

  修订号:修复bug

  如:
    初始时:1.00、修改bug:.0.1、功能调整:1.1.1

注:版本号,在构建、部署过程中可能会频繁修改,特别是SNAPSHOT版本

Packaging

  Packaging:

    指示将项目打包成什么类型的文件,idea根据packaging的值,识别maven项目类型。

    packaging 为 jar 时(默认值),代表普通的java工程,打包后是.jar结尾的文件

    packaging 为 war 时,代表java的web过程,打包后是.war结尾的文件

    packaging 为 pom 时,代表不会打包,用来做继承的工程




看个例子吧


<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.atguigu</groupId>
    <artifactId>studyone</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <!-- 声明项目属性,这些属性可以在POM文件的其他地方引用 -->
    <properties>
        <!-- 声明一个变量后,在其他位置可以引用${jackson.version}}
             注意:声明的标签,建议两层以上命名,格式:技术名.version
         -->
        <jackson.version>2.16.2</jackson.version>
        <junit.version>4.13.2</junit.version>
        <!-- 源码编译版本 -->
        <maven.compiler.source>17</maven.compiler.source>
        <!-- 目标字节码版本 -->
        <maven.compiler.target>17</maven.compiler.target>
        <!-- 项目构建时的源代码编码方式 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!-- 第三方依赖信息声明
        dependencies:项目依赖信息的集合
            dependency:每个依赖项
                [gav]:依赖的信息,就是其他maven工程的[gav]

        第三方依赖信息怎么知道?
            1、maven的官网查询:https://mvnrepository.com
            2、maven的插件:maven-search
                安装后,在Tools的Maven-search即可看到

        扩展:
            1、版本号统一管理
            2、可选属性scope,引入依赖的作用域
                compile(默认作用域),在主代码、测试代码、打包、运行时都生效
                test作用域,仅在测试阶段生效,不会参与打包和运行
                runtime作用域,仅在运行时生效,不会参与编译
                provided作用域,在编译和测试阶段生效,但在打包时不会包含在最最终的部署包中
                总结:它是一种锦上添花的手段,如果掌握不好,就默认值即可,一定不会错

     -->
    <dependencies>

        <dependency>
            <!-- 定位信息 gav 三个属性是必须的 -->
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
        </dependency>

    </dependencies>

</project>




https://www.xamrdz.com/bigdata/7ek1997568.html

相关文章: