Maven使用详解

1、maven介绍:

 

2、pom.xml文件理解:

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.google</groupId>
    <artifactId>aibaiyang</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>aibaiyang</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 

代码第一行是XML头,指定了改xml的版本和编码格式。紧接着是project元素,project元素是所有pom.xml的根元素,它声明了一些POM相关的命名空间及xsd元素。

modelVersion:指定了当前POM模型的版本,对于maven2以及maven3来说,它只能是4.0.0。

groupId、artifactId、version:这三个元素定义了一个项目的基本坐标,groupId定义了项目属于哪个组,例如google公司的myapp项目,那么groupId就应该是com.google.myapp;artifactId定义了Maven项目中组的唯一id,例如myapp-domain,myapp-serveice,myapp-web。

version:项目当前的版本号,0.0.1-SNAPSHOT是该项目的版本号。

name:声明了一个对于用户更为友好的项目名称,以方便信息交流,不是必须的。

 

3、坐标和依赖:

groupId:

artifactId:该元素定义实际项目中的一个Maven项目(模块),推荐的做法是使用实际的项目名称作为artifactId的前缀。这样做的好处是方便寻找实际的构件,使用实际的项目名称作为前缀之后,就能方便从一个lib文件夹中找到某个项目的一组构件。

version:该元素定义了Maven项目当前所处的版本。

packaging :该元素定义了Maven项目的打包方式,打包方式与所生成的构件的文件扩展名相对应。

 

3.1、依赖配置:

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>RELEASE</version>
            <type>jar</type>
            <scope>runtime</scope>
            <optional>false</optional>
            <exclusions>
                <exclusion> </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

groupId、artifactId、version:依赖坐标

type:依赖类型,对应项目坐标定义的packaging。大部分情况下该元素不必声明,其默认值为jar

socpe:依赖范围

optional:标记依赖是否可选

exclusions:用来排除传递性依赖

 

3.2、依赖范围:

compile:编译依赖氛围。没有指定,就会默认使用该依赖范围。

test:测试依赖范围。

provided:已提供依赖范围,编译和测试有效,但在运行时无效。

runtime:运行时依赖范围。编译无效,测试和运行时有效。

system:系统依赖范围,和provided依赖范围一致。

import:导入依赖范围。

 

3.3、传递性依赖:

 

 

 

参考此文档

posted @ 2019-02-17 23:06  艾白羊  阅读(160)  评论(0)    收藏  举报