【工具】Maven

文章目录

  • 0.Maven安装(不使用IDEA内置)
  • 1.Maven的作用
  • 2.Maven核心概念
  • 3.maven目录结构
  • 4.仓库
  • 5.pom文件
    • 5.1 坐标 gav
    • 5.2.packaging
    • 5.3.依赖
    • 5.4.配置属性
    • 5.5.build
  • 6.Maven生命周期
  • 7.junit 单元测试
  • 8.插件
  • 9.IDEA构建Maven
  • 10.创建javase项目
  • 11.web工程
  • 12.依赖的范围
  • 13 Maven常用属性

0.Maven安装(不使用IDEA内置)

(1)3.3.9 适合 jdk1.8
在这里插入图片描述
(2)解压到一个文件夹,路径不含有中文
在这里插入图片描述
(3)配置环境变量

name M2_HOME
value D:\dev\maven\maven3.3.9\apache-maven-3.3.9-bin\apache-maven-3.3.9

在这里插入图片描述

在这里插入图片描述
注意之前要配置JAVA_HOME

(4)安装正确
在这里插入图片描述

(5)默认仓库(本地仓库地址)
在这里插入图片描述

备份settings.xml
在这里插入图片描述

在这里插入图片描述

1.Maven的作用

  • 管理依赖
    jar包的管理,应用,版本
  • 构建项目
    完成项目的编译,测试,打包,部署

2.Maven核心概念

  • POM
    项目对象模式,Maven把一个项目当做一个模型,控制Maven项目构建的过程,管理Jar包。
  • 约定的目录结构
    每一个Maven项目的目录和文件都是有特定位置的。
  • 坐标
    唯一标识符,标识资源。
  • 依赖管理
    管理jar包。
  • 仓库管理
    资源存储的位置。
  • 生命周期
    maven项目构建过程
  • 插件和目标
    执行maven构建时使用的工具是插件
  • 继承
  • 聚合

3.maven目录结构

在这里插入图片描述

4.仓库

本地仓库, 就是你的个人计算机上的文件夹,存放各种jar

远程仓库, 在互联网上的,使用网络才能使用的仓库
①:中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库,
https://repo.maven.apache.org :中央仓库的地址
②:中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。
③:私服,在公司内部,在局域网中使用的, 不是对外使用的。

5.pom文件

5.1 坐标 gav

 <groupId>公司域名的倒写</groupId>
 <artifactId>自定义项目名称</artifactId>
 <version>自定版本号</version>

https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者 artifactId作为搜索条件

在这里插入图片描述

开发人员需要使用mysql驱动—>maven首先查本地仓库—>私服—>镜像—>中央仓库

5.2.packaging

打包后压缩文件的扩展名,默认jar,web应用默认war

5.3.依赖

<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
<dependencies>
  <dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.32</version>
  </dependency>
</dependencies>

5.4.配置属性

properties 设置属性

5.5.build

项目进行构建时,使用的配置信息

6.Maven生命周期

maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署

maven的命令:maven独立使用,通过命令,完成maven的生命周期的执行。maven可以使用命令,完成项目的清理,编译,测试等等

maven的插件: maven命令执行时,真正完成功能的是插件,插件就是一些jar文件, 一些类。

7.junit 单元测试

专门测试程序方法

testAdd叫做测试方法,它的定义规则
1.方法是public的,必须的
2.方法没有返回值, 必须的
3.方法名称是自定义的,推荐是Test + 方法名称
4.在方法的上面加入 @Test

8.插件

在这里插入图片描述

9.IDEA构建Maven

不使用内置的Maven

(1)设置之后新建项目使用配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.创建javase项目

(1)新建空工程

在这里插入图片描述
(2)使用骨架创建模块

在这里插入图片描述
在这里插入图片描述

修改配置

在这里插入图片描述

在这里插入图片描述

生命周期 插件 依赖
在这里插入图片描述

11.web工程

(1)maven构建项目
在这里插入图片描述
在这里插入图片描述
手动添加,补充完整
在这里插入图片描述
(2)创建servlet
在com.sdnu.controller下快捷键alt + insert ,搜索servlet
在这里插入图片描述
HelloServlet

package com.sdnu.controller;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        out.print("Hello Maven Web");
        out.flush();
        out.close();
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        out.print("Hello Maven Web");
        out.flush();
        out.close();
    }
}

web.xml

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.sdnu.controller.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

(3)添加依赖

    <!--加入servlet依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <!--加入jsp依赖-->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>

index.jsp

<html>
	<body>
		<h2>Hello World!</h2>
		<a href="hello">访问servlet</a>
	</body>
</html>

(4)部署项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
(5)打包

在这里插入图片描述
最终得出一个war包
在这里插入图片描述

12.依赖的范围

在这里插入图片描述

13 Maven常用属性

Maven属性设置

<properties> 设置maven的常用属性

Maven全局变量

自定义的属性,1.在<properties> 通过自定义标签声明变量(标签名就是变量名)
	         2.在pom.xml文件中的其它位置,使用 ${标签名} 使用变量的值

	自定义全局变量一般是定义 依赖的版本号, 当你的项目中要使用多个相同的版本号,
	先使用全局变量定义, 在使用${变量名}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/6298.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】初识动静态库/动静态链接

文章目录动静态库的基本原理认识动静态库动静态库的特性手动安装静态库动静态库的基本原理 首先&#xff0c;文件和头文件最终变成一个可执行程序需要经历以下四个步骤&#xff1a; 1&#xff09;预处理&#xff1a;预处理所要完成的有&#xff0c;头文件展开、去注释、宏替换…

【HTML系列】第四章 · 列表和表格

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

【艾特淘】淘宝做爆款的目的是什么?怎么做?

其实在淘宝上面也有很多卖家都想要去打造属于自己店铺的爆款商品。 但是又不知道淘宝做爆款商品的目的是什么&#xff0c;也不知道爆款商品到底应该要怎么做&#xff0c;我马上就来给各位卖家介绍。 我们打造爆款是为了让我们通过爆款赚钱&#xff0c;通过爆款引来的流量带动其…

计算机| 关于CPU的12个知识点(图文详解)

CPU是什么&#xff1f; CPU与计算机的关系就相当于大脑和人的关系&#xff0c;它是一种小型的计算机芯片&#xff0c;通常嵌入在电脑的主板上。 CPU的构建是通过在单个计算机芯片上放置数十亿个微型晶体管来实现。 这些晶体管使它能够执行运行存储在系统内存中的程序所需的计…

JS手写浅拷贝与深拷贝

目录 1、引言 2、深拷贝与浅拷贝介绍 2.1、概念 2.2、实现方式 3、手写代码 1、引言 要了解浅拷贝与深拷贝&#xff0c;首先要知道 堆 和 栈 的概念 堆栈&#xff1a; 就是存放数据的地方&#xff08;不管是定义的数字、字符串、对象还是数组、函数等等&#xff0c;都会在…

学习HM微博项目第10天

步骤&#xff1a;发微博12-表情键盘06-点击表情 -> 发微博13-表情键盘07-插入表情和封装textView -> 发微博14-表情键盘08-长按表情 -> 发微博15-表情键盘09-最近表情 -> 发微博16-表情键盘10-最近表情完善 发微博12-表情键盘06-点击表情 APP的演示动画&#xff…

完全自学C(干货) —— 预处理详解

目录 一&#xff0c;预定义符号 二&#xff0c;#define #define定义的标识符 #define定义宏 # ## 带副作用的宏参数 宏和函数的对比 #undef 三&#xff0c;命令行定义 四&#xff0c;条件编译 五&#xff0c;文件包含 #include 六&#xff0c;其他预处理指令 一&…

搞的谁还不会爬福利美女跳舞视频一样,用我这个方法非常简单。

大家好啊&#xff01;经常听别人说爬虫玩的好&#xff0c;*****&#xff01;其实没有这么恐怖&#xff0c;爬虫你一般都是采集公开的信息&#xff0c;所以不会像网络传言那样&#xff0c;大家只要遵守协议&#xff0c;不会出问题的。 话说学编程语言的应该都是男孩子哈&#xf…

不解释

&#xff08;1&#xff09;业务线下 VS 线上大陆 VS 全球整合-国际规则合规企业 VS 产业极速联动-社会化资源调度&#xff08;2&#xff09;手段P&#xff1a;人工预测 VS 时序预测D&#xff1a;管理者人工指派任务 VS 运筹学最优求解C&#xff1a;人工检查监督审批工作流 VS …

第十五章 镜像架构和规划 - 示例镜像架构和网络配置

文章目录第十五章 镜像架构和规划 - 示例镜像架构和网络配置示例镜像架构和网络配置在单个数据中心、机房或校园内镜像配置简单故障转移对具有 DR 的故障转移配对和报告 Ayncs 同构连接第十五章 镜像架构和规划 - 示例镜像架构和网络配置 示例镜像架构和网络配置 本节描述并说…

Python用re模块使用正则表达式

Python正则表达式是一种强大的工具&#xff0c;用于在字符串中查找和匹配特定模式的文本。在Python中&#xff0c;可以使用re模块来使用正则表达式。正则表达式是一种模式匹配语言&#xff0c;可以在文本中寻找特定模式的字符串。正则表达式可以用于验证输入&#xff0c;搜索和…

MYSQL——美团面试题

MYSQL——美团面试题 2023/3/27 美团二面 题目描述 Create table If Not Exists courses (student varchar(255), class varchar(255));insert into courses (student, class) values (A, Math); insert into courses (student, class) values (B, English); insert into co…

《C++那些事》之开启你的BenchMark项目

《C那些事》之开启你的BenchMark测试0.导语本节目标&#xff1a;完成一个BenchMark小项目!在平时开发中&#xff0c;如何测试自己的接口性能呢&#xff1f;C里面如何快速搭建一个BenchMark测试框架呢&#xff1f;本节将Step By Step开启BenchMark入门的第一课。1.项目结构我们以…

灵动微基于 MM32SPIN040C 为主控的无感方波水泵应用方案

水泵是一种运输液体或增压液体的机器。将原动机的机械能或其他外部动能量传递给液体&#xff0c;提高液体动能&#xff0c;主要用于运输含水、油、酸碱液、乳化液、悬乳液和液体金属的液体。 介绍一款适用于水泵的32位单片机——MM32SPIN040C。 RAMSUN推荐一款应用于水泵的MC…

从零开始实现一个C++高性能服务器框架----协程调度模块

此项目是根据sylar框架实现&#xff0c;是从零开始重写sylar&#xff0c;也是对sylar丰富与完善 项目地址&#xff1a;https://gitee.com/lzhiqiang1999/server-framework 简介 项目介绍&#xff1a;实现了一个基于协程的服务器框架&#xff0c;支持多线程、多协程协同调度&am…

倒计时组件:可视化如何自定义目标时间 / 数字倒数

倒计时组件支持通过自定义目标时间或倒数数字&#xff0c;在报表和大屏中展示时间倒数和数字倒数。 下面以Sugar BI为例&#xff0c;为大家展示 倒计时展示模式 倒计时组件提供「时间倒数」和「数字倒数」两种展示模式&#xff0c;效果如下&#xff1a; 默认为「时间倒数」模…

将本地项目上传到远程仓库的步骤

文章目录将本地项目上传到远程仓库的步骤1.进入想上传的项目文件夹2.初始化本地仓库3.添加该项目下的所有文件4.将文件添加到本地仓库中5.添加远程仓库6.将文件更新到远程仓库上7.将本地文件推送回到指定的远程仓库中将本地项目上传到远程仓库的步骤 1.进入想上传的项目文件夹…

简单介绍TensorFlow中关于tf.app.flags命令行参数解析模块

这篇文章主要介绍了TensorFlow中关于tf.app.flags命令行参数解析模块&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。如有错误或未考虑完全的地方&#xff0c;望不吝赐教 tf.app.flags命令行参数解析模块 说道命令行参数解析&#xff0c;就不得不提到 python…

Spring的IOC和DI入门

1、相关概念 1.1、Spring来源 官网&#xff1a;Spring | Home Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架。Spring核心是IOC和AOP。 Spring主要优点包括&#xff1a; 方便解耦&#xff0c;简化开发&#xff0c;通过Spring提供的IoC容器&#xff0c;我们可以将…

分布式事务问题

分布式事务问题 1、什么是分布式事务 一次课程发布操作需要向数据库、redis、elasticsearch、MinIO写四份数据&#xff0c;这里存在分布式事务问题。 什么是分布式事务&#xff1f; 首先理解什么是本地事务&#xff1f; 平常我们在程序中通过spring去控制事务是利用数据库…