Maven的安装与配置及使用

Maven

为什么要学习这个技术?

  • 在Javaweb开发中,需要使用大量的jar包,我们手动去导入并配置太耗费时间

  • 那如何能够有一个东西自动帮我们导入和配置这些jar包呢

  • 由此,Maven诞生了

1. 概述

我们目前用Maven就是方便导入jar包的

Maven的核心思想:约定大于配置(有约束,不要去违反)

Maven会规定好该如何去编写我们的Java代码,必须按照这个规范来

2. 下载安装

Maven官网:https://maven.apache.org/index.html

下载:

 

下载完成后,解压即可;

 

3. 配置环境变量

在我们的系统环境变量中,配置如下配置:

  • M2_HOME Maven下的bin目录

  • MAVEN_HOME Maven目录

  • 在系统path中配置M2_HOME\bin

测试Maven是否安装成功,保证必须配置完毕

 

4. 阿里云镜像

镜像:mirrors

如果没有配置阿里云镜像,构建Maven项目时,默认是从官方网站下载依赖,也就是说需要从外网上下载,这就导致了加载速度极慢的情况(不FQ),有可能会出现一直停留在Generating project in Batch mode的问题,配置阿里云镜像这可以避免这种情况的发生,可以加速下载依赖。

找到Maven的配置文件:C:\Maven\apache-maven-3.8.4\conf\settings.xml

 

 <mirror>
     <id>alimaven</id>
     <mirrorOf>central</mirrorOf>
     <name>aliyun maven</name>
     <url>https://maven.aliyun.com/repository/central</url>
 </mirror>

5. 本地仓库

本地仓库:在本地的仓库,对比:远程仓库

 

对于Maven来说,仓库只分为两类:本地仓库和远程仓库。 当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用; 如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。 如果本地仓库和远程仓库都没有需要的构件,Maven就会报错。

中央仓库是Maven核心自带的远程仓库,它包含了绝大部分开源的构件。在默认配置下,当本地仓库没有Maven需要的构件的时候,它就会尝试从中央仓库下载。 私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。

建立一个本地仓库:(不建的话有一个默认的,在一个不起眼的位置,为了我们方便查看,我们建在Maven目录下)

在Maven的配置文件:C:\Maven\apache-maven-3.8.4\conf\settings.xml

 

 <localRepository>C:\Maven\apache-maven-3.8.4\myRep</localRepository>

6. 在idea中使用maven

  1. 启动idea

  2. 创建一个Maven项目

 

 

 

 

 

 

 

 

 

  1. 观察Maven本地仓库多了什么 ---一些文件目录,里有jar包

  2. idea中的Maven配置

    需要注意的是:经常在idea中会出现一个问题:就是项目自动创建完成后,它这个MavenHome会使用idea自带的,我们如果发现了这个问题,要及时手动改为本地的

所以:在项目创建完成后,我们要先看一眼Maven的配置

 

  1. 添加文件夹

我们用Maven建完的web项目是这样的

 

但是缺少几个文件夹,添加后:

 

 

 

 

全部添加后:

 

 

至此,Maven在idea中的配置就OK了

7. 在idea中配置Tomcat

 

点击后:

 

添加完后,进行配置

 

警告:没有一个artifacts,我们要去创建

为什么会有这个警告?

因为我们在访问一个网站的时候,需要指定一个文件夹名字,这是必须要配置的,如下配置:

 

 

 

配置好,启动Tomcat

 

启动成功:

 

Maven侧边栏介绍:

 

 

8. pom.xml文件

 <?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>
 
 <!-- 创建项目时配置的G A V-->
   <groupId>com.zcc</groupId>
   <artifactId>javaweb_01_maven</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>war</packaging>
 
 <!-- 无用 可删-->
   <name>javaweb_01_maven Maven Webapp</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
 <!-- 配置-->
   <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>
       <scope>test</scope>
     </dependency>
   </dependencies>
 
 <!-- 项目构建用到的东西-->
   <build>
     <finalName>javaweb_01_maven</finalName>
     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
       <plugins>
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
           <version>3.1.0</version>
         </plugin>
         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
         <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>
 

Maven的强大之处:写进所需jar包坐标后,它会帮我们导入这个jar包,甚至还可以导入这个jar包所依赖的其他jar包

问题:

Maven由于它的约定大于配置,我们可能会遇到我们在Java中写的配置文件,无法导出或者生效的问题。

解决方案:在pom.xml文件下, build中配置resources,来防止我们的资源导出失败 :

 <!--在build中配置resources,防止资源导出失败问题-->
 <build>
     <resources>
         <resource>
             <directory>src/main/resources</directory>
             <includes>
                 <include>**/*.properties</include>
                 <include>**/*.xml</include>
             </includes>
             <filtering>false</filtering>
         </resource>
         <resource>
             <directory>src/main/java</directory>
             <includes>
                 <include>**/*.properties</include>
                 <include>**/*.xml</include>
             </includes>
             <filtering>false</filtering>
         </resource>
     </resources>
 </build>

输入后要刷新Maven

9. idea操作

可以查看jar包之间的联系

 

 

 

 

 

 

 

 

 

 

posted @   超、自律即自由  阅读(358)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示