我是靠谱客的博主 碧蓝香氛,最近开发中收集的这篇文章主要介绍Maven技术快速入门(1),springcloud实战演练,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

  • settings.xml里面的mirrors标签里面导入

<mirror>

  <id>aliyunmaven</id>

  <mirrorOf>*</mirrorOf>

  <name>阿里云公共仓库</name>

  <url>https://maven.aliyun.com/repository/public</url>

</mirror>



2.6、配置本地仓库


在Maven -bin 的同级目录下建立一个文件夹 maven-repo

在这里插入图片描述

建立一个本地仓库:localRepository

  • settings.xml里面的localRepository下导入

<localRepository>D:Developapache-maven-3.6.1maven-repo</localRepository>



3、Maveb基础概念

=============================================================================

3.1、仓库


仓库:用于存储资源,主要是各种jar包

在这里插入图片描述

关于仓库,我们前面讲到了有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库

中央仓库:maven团队自身维护的仓库,属于开源的

私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源

本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源

私服的作用:

(1)保存具有版权的资源,包含购买或自主研发的jar

(2)一定范围内共享资源,能做到仅对内不对外开放

3.2、坐标


我们说maven的仓库里存储了各种各样的资源(jar包),那这些资源我们如何找到它们呢?我们需要知道它们具体的一个位置才能知道如何找到它们,这个就叫坐标

坐标:maven中的坐标用于描述仓库中资源的位置

maven坐标的主要组成如下:

  • groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.itheima)

  • artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)

  • version:定义当前资源的版本号

  • packaging:定义资源的打包方式,取值一般有如下三种

    • jar:该资源打成jar包,默认是jar java工程打包为jar

    • war:该资源打成war包 web工程打包为war

    • pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构


<?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">

    <!--指定pom的模型版本-->

    <modelVersion>4.0.0</modelVersion>

    <!--打包方式 web工程打包为war java工程打包为jar-->

    <packaging>war</packaging>

    

    <!--组织id-->

    <groupId>com.itheima</groupId>

    <!--项目id-->

    <artifactId>web01</artifactId>

    <!--组织id  release代表完成版,SNAPSHOT代表开发版-->

    <version>1.0-SNAPSHOT</version>

    

    <!--设置当前工程的所有依赖-->

    <dependencies>

        <!--具体的依赖-->

        <dependency>

        </dependency>

    </dependencies>

</project>



4、创建一个MavenWeb项目

==================================================================================

  1. 启动IDEA

  2. 创建一个MavenWeb项目

在这里插入图片描述

在这里插入图片描述

  1. 创建完成等待项目初始化完成

在这里插入图片描述

在这里插入图片描述

  1. 观察maven仓库中多了什么东西?

  2. 注意:IDEA项目创建成功后,看一眼Maven的配置

在这里插入图片描述

到这里,Maven在IDEA中的配置和使用就OK了!

4.1、标记文件夹功能


我们在创建的MavenWeb 项目的 main 目录下创建 java,resources

在这里插入图片描述

  1. 鼠标悬停在java文件夹,右键

在这里插入图片描述

  1. resources 也同样标记

在这里插入图片描述

创建MavenWeb 项目我们需要手动去补全目录,并且要对补全的目录进行标记,切记

5、创建一个普通的Maven项目

==================================================================================

在这里插入图片描述

在这里插入图片描述

5.1、IDEA配置Tomcat


IDEA配置Tomcat步骤

我们也可以不配置Tomcat,而是在 pom.xml 中配置 tomcat 插件来运行项目

  • 在Maven仓库中搜索 tomcat Maven

  • 找到 org.apache.tomcat.maven

在这里插入图片描述

在这里插入图片描述

我们使用2.1版本的,相对来说稳定一些


<!--构建-->

<build>

    <!--设置插件-->

    <plugins>

        <!--具体的插件配置-->

        <groupId>org.apache.tomcat.maven</groupId>

        <artifactId>tomcat7-maven-plugin</artifactId>

        <version>2.1</version>

        <!--配置端口-->

        <configuration>

            <port>80</port>

            <!--虚拟路径-->

            <path>/</path>

        </configuration>

    </plugins>

</build>



插件配置好后,在IDEA右侧maven-project操作面板上可以看到该插件,并且可以利用该插件启动项目

在这里插入图片描述

运行后该插件会给我们一个可运行地址:

在这里插入图片描述

5.2、pom文件


pom.xml 是Maven的核心配置文件


<?xml version="1.0" encoding="UTF-8"?>



<!--Maven版本和头文件-->

<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.kuang</groupId>

  <artifactId>javaweb-01-maven</artifactId>

  <version>1.0-SNAPSHOT</version>

  <!--Package:项目的打包方式

  jar:java应用

  war:JavaWeb应用

  -->

  <packaging>war</packaging>



  <!--配置-->

  <properties>

    <!--项目的默认构建编码-->

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!--编码版本-->

    <maven.compiler.source>1.8</maven.compiler.source>

    <maven.compiler.target>1.8</maven.compiler.target>

  </properties>



  <!--项目依赖-->

  <dependencies>

    <!--具体依赖的jar包配置文件-->

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.11</version>

    </dependency>

  </dependencies>



  <!--项目构建用的东西-->

  <build>

    <finalName>javaweb-01-maven</finalName>

    <pluginManagement>

      <plugins>

        <plugin>

          <artifactId>maven-clean-plugin</artifactId>

          <version>3.1.0</version>

        </plugin>

        <plugin>

          <artifactId>maven-resources-plugin</artifactId>

          <version>3.0.2</version>

        </plugin>

        <plugin>

          <artifactId>maven-compiler-plugin</artifactId>

          <version>3.8.0</version>

        </plugin>

        <plugin>

          <artifactId>maven-surefire-plugin</artifactId>

          <version>2.22.1</version>

        </plugin>

        <plugin>

          <artifactId>maven-war-plugin</artifactId>

          <version>3.2.2</version>

        </plugin>

        <plugin>

          <artifactId>maven-install-plugin</artifactId>

          <version>2.5.2</version>

        </plugin>

        <plugin>

          <artifactId>maven-deploy-plugin</artifactId>

          <version>2.8.2</version>

        </plugin>

      </plugins>

    </pluginManagement>

  </build>

</project>



6、Maven依赖管理

=============================================================================

6.1、依赖配置与依赖传递


依赖是指在当前项目中运行所需的jar,依赖配置的格式如下:


<!--设置当前项目所依赖的所有jar-->

<dependencies>

    <!--设置具体的依赖-->

    <dependency>

        <!--依赖所属群组id-->

        <groupId>Junit</groupId>

        <!--依赖所属项目id-->

        <artifactId>Junit</artifactId>

        <!--依赖版本号-->

        <version>4.12</version>

    </dependency>

</dependencies>



依赖传递:

依赖具有传递性,分两种

(1)直接依赖:在当前项目中通过依赖配置建立的依赖关系

(2)间接依赖:被依赖的资源如果依赖其他资源,则表明当前项目间接依赖其他资源

6.1.1、依赖传递冲突

依赖传递的冲突问题:

在依赖传递过程中产生了冲突,我们有三种优先法则

(1)路径优先:当依赖中出现相同资源时,层级越深,优先级越低,反之则越高

(2)声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖靠后的

(3)特殊优先:当同级配置了相同资源的不同版本时,后配置的覆盖先配置的

在这里插入图片描述

以一个项目为根,直接依赖称为1度资源,直接依赖的直接依赖称为2度资源,直接依赖的直接依赖的直接依赖称为3度资源。

当然依赖冲突在这里我们并不需要记,后面会有如何解决此问题的办法。

6.1.2、可选依赖

可选依赖指的是对外隐藏当前所依赖的资源➡不透明

  • 加一个<optional> 标签

<dependencies>

    <dependency>

        <groupId>Junit</groupId>

        <artifactId>Junit</artifactId>

        <version>4.12</version>

        <optional>true</optional>

    </dependency>

</dependencies>



6.1.3、排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本


<dependencies>

    <dependency>

        <groupId>Junit</groupId>

        <artifactId>Junit</artifactId>

        <version>4.12</version>

        <exclusions>

            <exclusion>

                <groupId>log4j</groupId>

                <artifactId>log4j</artifactId>

            </exclusion>

    </dependency>

</dependencies>



6.1、依赖范围


依赖的jar默认情况可以在任何地方可用,可以通过scope标签设定其作用范围

这里的范围主要是指以下三种范围

(1)主程序范围有效(src/main目录范围内)

(2)测试程序范围内有效(src/test目录范围内)

(3)是否参与打包(package指令范围内)

此外:scope标签的取值有四种:compile,test,provided,runtime

这四种取值与范围的对应情况如下:

在这里插入图片描述

7、Maven生命周期与插件

================================================================================

Maven对项目构建的生命周期划分为3套

  • clear:清理工作

  • default:核心工作,例如编译、测试、打包、部署等

  • site:产生报告、发布站点等

7.1、clear生命周期


clean:清理工作

  • pre-clean:执行一些在clean之前的工作

  • clean:移除上一次构建产生的所有文件

  • post-clean:执行一些在clean之后立刻完成的工作

7.2、default生命周期


那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

  • 并发编程面试题汇总

  • JVM面试题汇总

  • Netty常被问到的那些面试题汇总

  • Tomcat面试题整理汇总

  • Mysql面试题汇总

  • Spring源码深度解析

  • Mybatis常见面试题汇总

  • Nginx那些面试题汇总

  • Zookeeper面试题汇总

  • RabbitMQ常见面试题汇总

JVM常频面试:

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(一)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(二)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Redis常见面试题汇总(300+题)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

an之前的工作

  • clean:移除上一次构建产生的所有文件

  • post-clean:执行一些在clean之后立刻完成的工作

7.2、default生命周期


那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

  • 并发编程面试题汇总

  • JVM面试题汇总

  • Netty常被问到的那些面试题汇总

  • Tomcat面试题整理汇总

  • Mysql面试题汇总

  • Spring源码深度解析

  • Mybatis常见面试题汇总

  • Nginx那些面试题汇总

  • Zookeeper面试题汇总

  • RabbitMQ常见面试题汇总

JVM常频面试:

[外链图片转存中…(img-9vm7tyye-1631064893601)]

Mysql面试题汇总(一)

[外链图片转存中…(img-RhTz6gIO-1631064893602)]

Mysql面试题汇总(二)

[外链图片转存中…(img-uqIynRl7-1631064893603)]

Redis常见面试题汇总(300+题)

[外链图片转存中…(img-QjCF7MuC-1631064893605)]

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

绝无套路!!

最后

以上就是碧蓝香氛为你收集整理的Maven技术快速入门(1),springcloud实战演练的全部内容,希望文章能够帮你解决Maven技术快速入门(1),springcloud实战演练所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部