• 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>

     

  • 相关阅读:
    springboot 实现 aop
    使用@import导入实现了ImportBeanDefinitionRegistrar接口的类,不能被注册为bean
    Spring Boot 动态数据源(多数据源自动切换)
    springboot2动态数据源的绑定
    三分钟学会@Autowired@Qualifier@Primary注解
    java复制文件的4种方式
    五款最好的免费同步软件
    springboot2多数据源完整示例
    WebSocket 结合 Nginx 实现域名及 WSS 协议访问
    Spring的注解@Qualifier注解
  • 原文地址:https://www.cnblogs.com/panlei3707/p/10381751.html
Copyright © 2020-2023  润新知