mavan开发要点总结(一)

2020-05-07  本文已影响0人  renmen2000

本文基于企业内部开发时使用到的maven知识点总结,便于开发时查阅使用,非权威文档,仅供参考。

一、初识pom.xml

每个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>
    <groupId>com.pxjy.puxin.preferential</groupId>
    <artifactId>puxin-preferential</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>demo</name>

二、maven依赖管理基础

再上一段配置

<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>2.1.1</version>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-activemq</artifactId>
 </dependency>
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
 </dependency>
 <dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <optional>true</optional>
 </dependency>
 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.62</version>
 </dependency>
 </dependencies>
1、理解maven的坐标

groupId + artifactId + version + packaging + classifier,五个维度的坐标,唯一定位一个依赖包,

实际中后面两个维度使用较少,99%的场景下groupId + artifactId + version

在pom文件的dependency标签中配置了groupId,artifactId,version后maven会自动从中央仓库或镜像仓库下载坐标对应的jar包到本地缓存中

2、dependency属性详解
<dependency>
 <groupId></groupId>
 <artifactId></artifactId>
 <version></version>
 <type></type>
 <scope></scope>
 <optional></optional>
</dependency>
依赖传递和依赖调解

三、理解maven的各级仓库及配置

maven1.PNG
1、本地仓库
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- localRepository | The path to the local repository maven will use to 
        store artifacts. | | Default: ${user.home}/.m2/repository -->
    <localRepository>C:\Users\renpb\.m2\repository</localRepository>

在maven自己的settings.xml文件中指定,windows系统中一般配置在用户目录.m2\repository

2、内网私服

公司内部使用nexus搭建的一套服务,便于集中下载和管理jar包以及将自己开发的共用jar发布到私服供其他团队使用,管理内网私服下面单独做更详细的讲解

3、中央仓库

maven的jar包里自带一个超级pom,里面默认配置了一个中央仓库,如果不做任何设置,拉取依赖包时就会从该超级pom配置的中央仓库去下载

<repositories>
    <repository>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <url>http://repo1.maven.org/maven2</url>
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
4、其他仓库

某些厂商的jar并没有在maven中央仓库提供,此时需要从厂商自己提供的地址去下载,需要注意

5、镜像仓库

由于maven中央仓库服务器在国外,有时候下载依赖会非常慢,国内部分大厂提供镜像仓库,里边存放与中央仓库一模一样的资源,代理中央仓库,满足国内用户快速下载需求,一般都使用阿里云镜像仓库

一般配置在settings.xml里,配置如下,注意如果有内网私服可能会将镜像仓库直接配置在私服里,本地统一走私服即可

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
上一篇 下一篇

猜你喜欢

热点阅读