DAY02-maven的使用

一、 maven概述

maven是什么

Apache组织开发的一个开源跨平台的集构建、依赖管理、项目管理于一身的工具(跨平台体现在不同操作系统上都能使用)

为什么要使用maven

解决构建部署项目,第三方依赖比较繁琐的问题,进行统一管理与配置,提供了一个标准的最佳实践目录结构,更高效的来开发管理项目

实现流程

maven实现流程

可以重复利用之前使用的jar,不用每次去下载

maven项目结构

maven项目结构

二、 maven安装

1、检查JDK 的版本与需要的maven版本

Maven 不同的版本对 JDK 是有要求的,具体请看官网https://maven.apache.org/docs/history.html。

2、安装

  • 把apache-maven-x.x.x-bin.zip解压到目录中(目录路径最好不要有空格和中文)。

3、配置环境变量

  • 配置系统环境变量,MAVEN_HOME,指向maven的根目录;
  • 配置环境变量Path,将%MAVEN_HOME%\bin追加到Path中。

4、验证Maven安装

mvn –v ,如下效果即代表安装成功


image.png

三、 maven相关的命令

  • 需要在cmd下切换到项目所在目录
    mvn compile:编译
    mvn clean:清除 :字节码有问题破损时使用,会清除项目下的target文件
    mvn test:测试
    mvn package:打包
    mvn install:打包,本地仓库也放一份

四、Maven 设置

1、本地仓库

  • 运行过 Maven 命令才会在你的用户目录生成一个.m2目录,该目录下有个目录名 repository,这个就是所谓的本地仓库,主要存放是一些下载的jar文件。


    本地仓库
  • 本地仓库默认位置在 用户目录/.m2/repository,本地仓库不建议在系统盘
    本地仓库修改为其他路径本地仓库路径,修改后用户下的本地仓库文件夹repository可以删除

    本地仓库路径

2、配置中央仓库镜像

配置一个中央仓库的镜像来降低下载失败的概率

  • setting.xml


    
    D:\codeSoftware\Maven\mvn-rep
    
        
        
            alimaven
            aliyun maven
            http://maven.aliyun.com/nexus/content/groups/public/
            central
        
    

五、Eclipse 中 Maven 的配置

1、配置安装的 Maven

image.png

2、设置 setttings.xml和本地仓库

image.png

3、下载源码设置

image.png

六、 搭建基于Maven构建的JavaSE项目

1、创建项目

image.png
image.png
image.png

2、pom.xml 文件

用于填写项目信息,打包方式,添加依赖等。


image.png

3、添加依赖

  • 建索引添加依赖
    显示索引菜单


    image.png

    image.png

    禁用远程仓库索引


    image.png

    建立本地仓库索引
    image.png

    在pom.xml 右键添加依赖
    image.png

    在添加依赖的对话框中选择需要添加的依赖


    image.png
依赖有问题的解决方法

网站搜索拷贝添加依赖

访问不到电脑使用手机的热点试试,或者翻墙。
网站:官网 https://mvnrepository.com/。
阿里 https://maven.aliyun.com/mvn/search

image.png
image.png
image.png
image.png

使用Maven命令

  • 清除


    image.png
  • 打包
    菜单自有的命令有限,没有打包的菜单,所以可以右键项目:


    image.png

    image.png

    image.png

七、搭建基于Maven构建的JavaWeb项目

1、创建项目

image.png

此时注意打包方式为war


image.png

2、添加web.xml

image.png


3、修改项目编译运行版本


   maven-compiler-plugin
   
   1.8
   1.8
   utf-8
   

image.png

之后右键项目更新项目


image.png

4、添加依赖

image.png

5、编写Servlet与JSP

image.png

image.png

6、配置Tomcat插件


    org.apache.tomcat.maven
    tomcat7-maven-plugin
    2.1
    
        8080 
        / 
        UTF-8 
    

7、启动Tomcat

  • 常见错误:
  1. 端口占用:(未正常关闭服务器,多次点击启动,可进任务管理器关闭javase进程)
    Netstat命令
      1)、“运行”中输入cmd;
      2)、在命令行中输入netstat -ano,得到端口号对应的PID;
  2. 路径问题:


    image.png
  • 右键要启动的项目
    image.png

    如下输入tomcat7:run,Debug 启动。tomcat7为tomcat7-maven-plugin里的前缀,要完全一致
    image.png

八、概念解释

数学中的坐标在空间中,使用 X、Y、Z 三个向量可以唯一的定位空间中的任意一个点。

1、Maven中的坐标

标识项目在仓库中的位置。主要由下面构成:
groupId:项目名称,一般使用公司或组织域名倒写,域名具有唯一性,区分不同公司;
artifactId:项目中 Maven 项目/模块名称,区分同一个公司的项目;
version:项目版本,区分同一个项目不同时期的特点。


image.png

2、依赖

打包时正在校验


image.png

  • Maven在编译,测试,运行的时候,各需要一套classpath(比如编译的时候会有编译的 classpath,测试的时候会有测试的 classpath)。
    scope表明该依赖的项目和三个classpath 的关系,即表示依赖什么阶段起作用,什么阶段

scope 主要可选值:
a、compile:默认,适用于所有阶段,会随着项目一起发布,在编译,测试,运行时都有效;
b、provided:编译和测试阶段使用;典型的如 servlet-api.jar,打包时不需要,容器来提供;
c、runtime:测试和运行阶段使用,用于接口和实现分离,典型的如 jdbc 具体驱动实现;
d、test:测试阶段使用,不会随项目发布,如 junit。

image.png

image.png

传递性

Maven的依赖是具有传递性的,
比如 A -> B,B -> C,那么A间接的依赖于C,这就是依赖的传递性
依赖的传递性可以解决依赖繁琐的问题。

你可能感兴趣的:(DAY02-maven的使用)