Maven笔记

 

入门

配置环境:mvn -v 检查是否配置好环境变量

目录结构:

 

核心知识

 maven常用构建命令

在一个项目中引用本地另一个项目的类时,需要在另一个项目中使用 mvn install 将其jar包安装到本地仓库,然后在本项目的pom.xml文件的<dependency>中声明。

maven引入构建包的流程:首先是mvn compile进行编译,编译过程中如果用到了其他的包,就会去pom.xml中查找,是否有该依赖包的坐标,也就是<dependency>...</dependency>标签中的内容,然后会去本地仓库中查找,若本地仓库中没有就回去maven的中央仓库中查找并下载到本地仓库,供项目使用。

 

自动创建目录骨架

 

maven中的坐标和仓库

坐标:构件是mvn中的每个子项。坐标是用来唯一标识构件的,坐标用groupId、articleId、version标识

仓库:本地仓库与全球仓库,全球仓库一般访问速度慢或者网路原因不稳定

镜像仓库:设置镜像仓库在setting.xml中设置,mirrors中的注释有示例,只需要修改mirror

 

更改仓库位置:默认是C:\Users\***\.m2。修改也是在settings.xml中修改

 

 

maven生命周期和插件

maven中定义了三套相互独立的生命周期,每个生命周期有自己的阶段,各个阶段有顺序,后面的阶段依赖于前面的阶段

 

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">
  <!-- 指定了当前pom的版本 -->
  <modelVersion>4.0.0</modelVersion>

  <groupId>反写的公司网址+项目名</groupId>
  <artifactId>项目名+模块名</artifactId>
  <version>1.0-SNAPSHOT</version>
  <!-- 打包方式,默认是jar -->
  <packaging>war</packaging>
    
  <!-- 项目描述名 -->
  <name>maven_demo Maven Webapp</name>
  <!-- 项目地址 -->
  <url>http://www.example.com</url>
  <!-- 项目描述 -->  
  <description></description>
  <!-- 开发人员 -->
  <developers></developers>
  <!-- 组织信息 -->
  <organization></organization>
  <!-- 许可证信息 -->
  <licenses></licenses>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>    <!-- 依赖范围 -->
      <optional></optional>   <!-- 设置依赖是否可选 -->
      <exclusions>                 <!-- 排除依赖传递列表 -->
        <exclusion>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  
<!-- 依赖管理 -->
  <dependencyManagement>
  </dependencyManagement>

  <build>
      <!-- 插件列表 -->
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
        </plugins>
  </build>
  
  <!-- 子模块对父模块pom.xml的继承 -->
  <parent></parent>
  <!-- 聚合多个maven项目 -->
  <modules>
    <module></module>
  </modules>
</project>

 依赖范围讲解:

 maven提供了三种classpath:编译、测试、运行

有6种依赖范围:

 

Maven依赖传递

 maven是按模块组织的,一个项目可能有多个maven,这就有可能在C maven项目中依赖B maven项目,在B maven项目中依赖A maven项目,这就需要在B 的pom.xml中的<dependency></dependency>中声明A的坐标,在C 的pom.xml中的<dependency></dependency>中声明B的坐标,注意这时候需要将A B安装到本地仓库

 

Maven依赖冲突

 Maven聚合和继承

 maven是按模块组织的,一个项目可能有多个maven,为更快速的对所有项目进行编译,可以将新建一个Maven项目,然后在pom.xml中使用modules进行聚合,统一install即可

<!-- 聚合多个maven项目 -->
  <modules>
    <module></module>
  </modules>

 

 

posted @ 2019-02-15 09:29  潘_磊  阅读(148)  评论(0编辑  收藏  举报