Maven的学习

为什么要学习这个技术?

  1. 在javaweb开发中,需要使用大量的jar包,这种jar包需要手动的导入
  2. 如何让一个东西自动导入和配置jar包
  3. 所以Maven诞生了

maven就是一个架构管理工具

1、Maven项目架构管理工具

Maven的核心思想:约定大于配置,有约束,不要去违反。
Maven会规定好要如何去编写Java代码,必须按照这个规范来。

2、下载安装Maven

https://maven.apache.org/

3、配置环境变量

  • M2_HOME :maven下bin目录
  • MAVEN_HOME:maven目录
  • Path:%MAVEN_HOME%\bin

4、阿里云镜像

镜像:mirrors
作用:加速我们的下载
国内建议使用阿里云的镜像

nexus-aliyun *,!jeecg,!jeecg-snapshots Nexus aliyun https://maven.aliyun.com/nexus/content/groups/public
5、本地仓库 建立一个在本地的仓库
D:\wordspace\ljw\apache-maven-3.8.6\maven-repo
6、在IDEA中使用Maven
  1. 启动IDEA
  2. 创建MavenWeb项目
  3. mvn ide 怎么指定java版本_maven


  4. mvn ide 怎么指定java版本_jar包_02

  5. 这里用户配置忘记改了,记得改!!!!这里用户配置忘记改了,记得改!!!!
  6. mvn ide 怎么指定java版本_jar包_03


  7. mvn ide 怎么指定java版本_maven_04

  8. 3.8.6的版本maven用不了▼_▼
    重新下了3.6.3
  9. mvn ide 怎么指定java版本_jar包_05



  1. 等待导入成功
  2. mvn ide 怎么指定java版本_maven_06



  1. 观察maven仓库里多了什么东西
  2. IDEA中的MAVEN设置 IDEA项目创建成功后,要看一眼Maven的配置
  3. mvn ide 怎么指定java版本_maven_07

  4. 没有要打钩的意思
  5. mvn ide 怎么指定java版本_maven_08



  1. 到这里,Maven在IDEA中的配置和使用就完成了。
  2. mvn ide 怎么指定java版本_maven_09


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

不选择模板。

mvn ide 怎么指定java版本_mvn ide 怎么指定java版本_10


mvn ide 怎么指定java版本_jar包_11


mvn ide 怎么指定java版本_xml_12

8、在IDEA中标记文件夹功能

mvn ide 怎么指定java版本_jar包_13


mvn ide 怎么指定java版本_maven_14


mvn ide 怎么指定java版本_jar包_15

9、在IDEA中配置Tomcat

在IDEA中配置Tomcat

mvn ide 怎么指定java版本_xml_16


mvn ide 怎么指定java版本_xml_17


mvn ide 怎么指定java版本_jar包_18


mvn ide 怎么指定java版本_mvn ide 怎么指定java版本_19

解决警告问题

为什么会有这个问题:访问一个网站,需要指定一个文件夹名字

mvn ide 怎么指定java版本_maven_20


虚拟路径映射

mvn ide 怎么指定java版本_mvn ide 怎么指定java版本_21


mvn ide 怎么指定java版本_mvn ide 怎么指定java版本_22


mvn ide 怎么指定java版本_xml_23


这里访问到的Hello World! 就是默认的index.jsp中的内容

mvn ide 怎么指定java版本_jar包_24

10、pom文件

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

mvn ide 怎么指定java版本_jar包_25

点击查看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>

<!-- 这个是刚才配置的GAV -->
  <groupId>org.example</groupId>
  <artifactId>javaweb-1</artifactId>
  <version>1.0-SNAPSHOT</version>
<!-- Package:项目的打包方式 -->
<!--
jar:java应用
war:javaweb应用
 -->
  <packaging>war</packaging>

<!-- 名称,可以删 -->
<!--  <name>javaweb-1 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.7</maven.compiler.source>
    <maven.compiler.target>1.7</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-1</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>
      </plugins>
    </pluginManagement>
  </build>
</project>

Maven的高级之处在于,他会帮你导入这个jar包所依赖的其他jar包。
Maven由于约定大于配置,所以可能会遇到所写的配置文件无法被导出或者生效。
解决方法:

<!-- 在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>
12、IDEA操作

目录树

Maven中jar包的联系关联图

mvn ide 怎么指定java版本_mvn ide 怎么指定java版本_26