2020-05-30

5、Maven

我为什么要学习这个技术?

  1. 在Javaweb开发中,需要使用大量的jar包,我们手动去导入;

  2. 如何能够让一个东西自动帮我导入和配置这个jar包。

    由此,Maven诞生了!

5.1 Maven项目架构管理工具

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

Maven的核心思想:约定大于配置

  • 有约束,不要去违反。

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

5.2 下载安装Maven

官网;https://maven.apache.org/

1567842350606.png

下载完成后,解压即可;

小狂神友情建议:电脑上的所有环境都放在一个文件夹下,方便管理;

5.3 配置环境变量

在我们的系统环境变量中

配置如下配置:

  • M2_HOME maven目录下的bin目录

  • MAVEN_HOME maven的目录

  • 在系统的path中配置 %MAVEN_HOME%\bin

1567842882993.png

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

5.4 阿里云镜像

1567844609399.png
  • 镜像:mirrors

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

  <mirror>
    <id>nexus-aliyun</id>  
    <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>  
    <name>Nexus aliyun</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

5.5 本地仓库

在本地的仓库,远程仓库;

建立一个本地仓库:localRepository

  <localRepository>D:\Environment\apache-maven-3.6.2\maven-repo</localRepository>

5.6、在IDEA中使用Maven

  1. 启动IDEA

  2. 创建一个MavenWeb项目

1567844785602.png
1567844841172.png

1567844917185.png

1567844956177.png

1567845029864.png
  1. 等待项目初始化完毕
1567845105970.png
1567845137978.png
  1. 观察maven仓库中多了什么东西?

  2. IDEA中的Maven设置

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

1567845341956.png
1567845413672.png
  1. 到这里,Maven在IDEA中的配置和使用就OK了!

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

1567845557744.png
1567845717377.png

这个只有在Web应用下才会有!

1567845782034.png

5.8 标记文件夹功能

1567845910728.png
1567845957139.png

1567846034906.png

1567846073511.png

5.9 在 IDEA中配置Tomcat

1567846140348.png

1567846179573.png
1567846234175.png

1567846369751.png
1567846421963.png

解决警告问题

必须要的配置:为什么会有这个问题:我们访问一个网站,需要指定一个文件夹名字;

1567846546465.png

1567846559111.png
1567846640372.png

5.10 pom文件

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

1567846784849.png
<?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>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><!-- 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>
1567847410771.png

maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:

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

5.12 IDEA操作

1567847630808.png
1567847662429.png

5.13 解决遇到的问题

  1. Maven 3.6.2

    解决方法:降级为3.6.1

1567904719094.png
  1. Tomcat闪退

  2. IDEA中每次都要重复配置Maven 在IDEA中的全局默认配置中去配置

1567905243115.png
1567905291002.png
  1. Maven项目中Tomcat无法配置

  2. maven默认web项目中的web.xml版本问题

1567905537026.png
  1. 替换为webapp4.0版本和tomcat一致
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                    http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
       version="4.0"
       metadata-complete="true">



</web-app>
  1. Maven仓库的使用

    地址:https://mvnrepository.com/

1567905870750.png

1567905982979.png

1567906017448.png

1567906039469.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。