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,本地仓库不建议在系统盘
    本地仓库修改为其他路径<localRepository>本地仓库路径</localRepository>,修改后用户下的本地仓库文件夹repository可以删除

    本地仓库路径

2、配置中央仓库镜像

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

  • setting.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <!-- 本地仓库地址 -->
    <localRepository>D:\codeSoftware\Maven\mvn-rep</localRepository>
    <mirrors>
        <!-- 阿里仓库镜像 -->
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
</settings>

五、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
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
</web-app>

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

<plugin>
   <artifactId>maven-compiler-plugin</artifactId>
   <configuration>
   <source>1.8</source><!-- 更新项目(Maven | Update Project)之后,会修改项目的编译版本 -->
   <target>1.8</target><!-- 更新项目之后,会修改项目的运行版本 -->
   <encoding>utf-8</encoding><!-- 更新项目之后,Java 编译器读取你的文件用的编码 -->
   </configuration>
</plugin>
image.png

之后右键项目更新项目


image.png

4、添加依赖

image.png

5、编写Servlet与JSP

image.png

image.png

6、配置Tomcat插件

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <port>8080</port> <!-- 端口 -->
        <path>/</path> <!-- 上下路径 -->
        <uriEncoding>UTF-8</uriEncoding> <!-- 针对 GET 方式乱码处理 -->
    </configuration>
</plugin>

7、启动Tomcat

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


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

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

八、概念解释

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

1、Maven中的坐标

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


image.png

2、依赖

打包时正在校验


image.png

<scop>

  • 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,这就是依赖的传递性
依赖的传递性可以解决依赖繁琐的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容