Maven基础(总结)——入门学习

Maven基础

一、Maven概述

1.Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

  • 提供了一套标准化的项目结构
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……)
  • 提供了一套依赖管理机制

2.标准化的项目结构

在这里插入图片描述

3.标准化的构建流程

在这里插入图片描述

4.依赖管理

依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)

在这里插入图片描述

​ 常见的项目构建工具

在这里插入图片描述

二、Maven 简介

Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

官网:http://maven.apache.org/

1.Maven的作用

  • 标准化的项目结构
  • 标准化的构建流程
  • 方便的依赖管理

2.Maven 模型:

在这里插入图片描述

  • 项目对象模型 (Project Object Model)
  • 依赖管理模型(Dependency)
  • 插件(Plugin)

3.Maven仓库

在这里插入图片描述

  • 仓库分类:

    • 本地仓库:自己计算机上的一个目录
    • 中央仓库:由Maven团队维护的全球唯一的仓库
      • 地址:https://repo1.maven.org/maven2/
    • 远程仓库(私服):一般由公司团队搭建的私有仓库
  • 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

    • 如果有,则在项目直接引用;
    • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
  • 还可以搭建远程仓库,将来jar包的查找顺序则变为:

    • 本地仓库 -> 远程仓库 -> 中央仓库

三、Maven 安装配置

1.Maven的安装步骤(以apache-maven-3.6.1为例)

  1. 解压 apache-maven-3.6.1.rar 既安装完成

  2. 配置环境变量 MAVEN_HOME 为安装路径的bin目录

    在这里插入图片描述

    在这里插入图片描述

    在cmd中输入以下命令,出现如图所示结果,则表示安装成功!

    在这里插入图片描述

  3. 配置本地仓库:修改 conf/settings.xml 中的 为一个指定目录

    在这里插入图片描述

    在这里插入图片描述

  4. 配置阿里云私服:修改 conf/settings.xml 中的 标签,为其添加如下子标签:

    <mirror>  <id>alimaven</id>  <name>aliyun maven</name>  <url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>          
    </mirror>

    在这里插入图片描述

四、Maven 基本使用

1.Maven 常用命令

  • compile :编译

    编译当前的Maven项目

  • clean:清理

    删除当前Maven项目的target文件夹

  • test:测试

    执行Maven项目中的测试方法

  • package:打包

    将当前的Maven项目打包成一个jar包

  • install:安装

    将当前项目的jar包安装的本地仓库

演示:

在maven项目下的src文件路径处打开终端,输入mvn compile,即可对该项目进行编译,编译完成后会生成一个target文件,第一次使用时会下载所需要的工具到本地仓库,耐心等待一会即可。其他命令同理。这里不一一演示了 。

在这里插入图片描述

2.Maven 生命周期

  • Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
  • Maven 对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等

同一生命周期内,执行后边的命令,前边的所有命令会自动执行

在这里插入图片描述

default构建生命周期

validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。

initialize(初始化) 初始化构建状态,比如设置属性值。

generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。

process-sources(处理源代码) 处理源代码,比如说,过滤任意值。

generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。

process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。

compile(编译) 编译项目的源代码。

process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。

generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。

process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。

generate-test-resources(生成测试资源文件) 为测试创建资源文件。

process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。

test-compile(编译测试源码) 编译测试源代码到测试目标目录.

process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。

test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。

prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。

package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。

pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。

integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。

post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。

verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。

install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。

deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。

五、IDEA 配置 Maven

1.IDEA 配置 Maven 环境

​ ①选择 IDEA中 File/文件 --> Settings/设置

​ ②搜索 maven

​ ③设置 IDEA 使用本地安装的 Maven,并修改配置文件路径,点击应用和确定

在这里插入图片描述

2.Maven 坐标详解

  • 什么是坐标?

    • Maven 中的坐标是资源的唯一标识
    • 使用坐标来定义项目或引入项目中需要的依赖
  • Maven 坐标主要组成

    • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
    • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
    • version:定义当前项目版本号

在这里插入图片描述

3.IDEA 创建 Maven 项目

  • 创建模块,选择Maven,点击Next
  • 填写模块名称,坐标信息,点击finish,创建完成
  • 编写 HelloWorld,并运行

在这里插入图片描述

在这里插入图片描述

4.IDEA 导入 Maven 项目

  1. 选择右侧Maven面板,点击 + 号

    在这里插入图片描述

  2. 选中对应项目的pom.xml文件,双击即可

  3. 如果没有Maven面板,选择

​ View/视图 -> Appearance/外观 -> Tool Window Bars/工具窗口

5.配置Maven-Helper插件

  1. 选择 IDEA中 File/文件 --> Settings/设置
  2. 选择 Plugins/插件
  3. 搜索 Maven,选择第一个 Maven Helper,点击Install安装,确定之后点击重启
  4. 重启 IDEA

在这里插入图片描述

六、依赖管理

1.使用坐标导入 jar 包

  1. 在 pom.xml 中编写 标签
  2. 在 标签中 使用 引入坐标
  3. 定义坐标的 groupId,artifactId,version
  4. 点击刷新按钮,使坐标生效

在这里插入图片描述

2.使用坐标导入 jar 包 – 快捷方式

  1. 在 pom.xml 中 按 alt + insert,选择 Dependency
  2. 在弹出的面板中搜索对应坐标,然后双击选中对应坐标
  3. 点击刷新按钮,使坐标生效

在这里插入图片描述

3.使用坐标导入 jar 包 – 自动导入

  1. 选择 IDEA中 File --> Settings
  2. 在弹出的面板中找到 Build Tools
  3. 选择 Any changes,点击 ok 即可生效

在这里插入图片描述

4.依赖范围

  • 通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境

在这里插入图片描述

在这里插入图片描述

注:默认值:compile

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#重写了窗体的OnKeyDown事件,但是不执行

设置下窗体的KeyPreview属性值为True即可 总结&#xff1a;遇到类似这样的问题&#xff0c;比如其他窗体运行没问题&#xff0c;就新建的窗体有问题。应该检查下窗体的属性。 转载于:https://www.cnblogs.com/codeDevotee/p/7093333.html

MyBatis学习笔记(超详细总结)

MyBatis学习笔记 一、MyBatis概述 1.什么是MyBatis? MyBatis 是一款优秀的持久层框架&#xff0c;用于简化 JDBC 开发 MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为yBatis 。2013年11…

创建并发布npm包

1.npm官网创建npm账户 npm网站地址&#xff1a;https://www.npmjs.com/ npm网站注册地址&#xff1a;https://www.npmjs.com/signup 2.命令行工具登录npm npm login 验证登录是否成功 npm who am i 3.创建npm库 npm init 按照提示输入相应内容&#xff1a; 以下为package.json内…

Android 开发笔记___drawable

1 <?xml version"1.0" encoding"utf-8"?>2 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"3 android:layout_width"match_parent"4 android:layout_height"match_parent"5 …

win7 管理iphone日历_大师给你传授win7系统安装桌面日历的途径

win7正式版系统是公认操作便捷的电脑系统&#xff0c;大概很多人在操作过程中都会有应对win7系统安装桌面日历难题的时候。不少小白计算机技术还纯属于菜鸟&#xff0c;关于win7系统安装桌面日历的情况&#xff0c;不能自行处理。很多人都来询问小编win7系统安装桌面日历应该如…

内部属性 聚合_光的本质(用粒子性解释光的所有属性,颜色,介质内速度改变等)...

本文已经发布于《科技展望》2017年27期&#xff0c;转发请注明。1.1 光的本质1.1.1 光的本质光是地球上的生命体存在的前提条件&#xff08;当然地球上也存在不能见光的生命体&#xff0c;但即使是这些生命体不能见光&#xff0c;它们最终需要的能源也间接的来源于光&#xff0…

easyui(一) 初始easyui

分享使我快乐。哈哈~ --WZY 一、什么是easyui&#xff1f; 学习一个东西&#xff0c;最重要的是知道它的定位(是干嘛的&#xff0c;基本的用法是什么&#xff0c;快速入门)&#xff0c;其实easyui也非常简单&#xff0c;不要觉得很难。 easyui就是一个前端框架&#xff0c;JQue…

mysql数据库代码_【代码总结】MYSQL数据库的常见操作

MYSQL数据库的常见操作一、mysql的连接与关闭-h&#xff1a;指定所连接的服务器位置-u&#xff1a;数据库的用户名-p&#xff1a;数据库的密码1 mysql -u 用户名 -p //连接数据库2 密码3 exit //关闭数据库1 mysql_connect($host,$user,$password); //连接数据库2 mysql_close(…

HDU1023 Train Problem II

传送门https://vjudge.net/problem/HDU-1023 解题思路&#xff1a; 大数和卡特兰数 实现代码&#xff1a; #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> using namespace std;const int MAX100; const int BASE10000…

命令创建mysql数据库_怎么在命令行创建一个mysql数据库

哆啦的时光机第一步&#xff1a;登陆到MySQL服务器  首先&#xff0c;你需要使用root用户登陆进你的MySQL数据库&#xff0c;如下&#xff1a;  $ mysql -u root -h -p  请注意&#xff1a;为了能登进远程的MySQL服务器&#xff0c;你需要开启服务器上的远程访问&#xf…

A-Z排序控件的实现

前言最近项目需要做一个地区首字母a-z排序的效果,记录一下自己如何实现的. 先看下效果图: 分析这种效果自己实现还是第一次;之前见过这种效果: 这些字母都是onDraw画上去的;只要知道每个字母的left,top,right,bottom就能知道它的具体位置,所以onMeasure方法中要确定每个单元格的…

mysql两个表查询修改_MySQL:查询、修改(二)

干货:使用SELECT查询的基本语句SELECT * FROM 可以查询一个表的所有行和所有列的数据。SELECT查询的结果是一个二维表。使用SELECT *表示查询表的所有列&#xff0c;使用SELECT 列1, 列2, 列3则可以仅返回指定列&#xff0c;这种操作称为投影。SELECT语句可以对结果集的列进行重…

Jython中文乱码问题

最近&#xff0c;在项目中需要用到Java代用Python的代码&#xff0c;并且需要传参数&#xff0c;因此选用了Jython包&#xff0c;但是&#xff0c;如果在调用python脚本时&#xff0c;出现了中文乱码的现象。代码如下&#xff1a; PythonInterpreter interpreter interpreter …

无规则弹窗自动点击插件_vscode 插件会了吧,英语不好的赶紧下载 自动分析源码中的陌生单词、点击朗读单词...

名字非常土&#xff1a;会了吧&#xff01;Solgan 还在因为 变量中 包含不认识的单词 头大吗&#xff1f;还在因为 看不懂 英文注释/文档 掉头发吗 &#xff1f;还在因为 各种机器翻译的内容 云里雾里吗 &#xff1f;您的救星来了&#xff01;&#xff01;&#xff01;用了“会…

Knozen:新型职场社交评论匿名应用,已获多家风投投资

Knozen是一款6月底新公布的职场匿名应用&#xff0c;能够展示你的同事朋友最赞赏、喜欢你什么。通过这款应用。能够匿名评价、分享、发现你的同事和朋友的个性。以及个性特征的比較。你的评价还能够被其它人匿名允许或反对&#xff1a;这个应用希望能够帮助你发现自己的个性长处…

mq幂等mysql_膜拜!看完这篇你还不懂RocketMQ算我输

RocketMQ 介绍Apache RocketMQ 是一款 低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力&#xff0c;同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。RocketMQ 概念Topic&#xff1a;…

从一个数组中找出最接近目标_LeetCode每日一题 | 转变数组后最接近目标值的数组和...

题目来源&#xff1a;LC1300这道题目是一道比较经典的二分查找题。我们注意到&#xff0c;当value越大时&#xff0c;数组之和越大&#xff0c;当value越小时&#xff0c;数组之和越小。因此&#xff0c;我们可以利用数组之和是value的单调递增函数这个性质来进行二分查找。最大…

C++ 初始化列表初始化列表性能问题的简单的探索

C 初始化列表性能问题的简单的探索 从概念上来讲&#xff0c;构造函数的执行可以分成两个阶段&#xff0c;初始化阶段和计算阶段&#xff0c;初始化阶段先于计算阶段。 在执行构造函数时&#xff0c;如果没有给定初始值&#xff0c;那系统就会自动进行初始化。 #include <st…

mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)

关键词&#xff0c;mysql半同步复制【0】实验环境操作系统&#xff1a;CentOS linux 7.5数据库版本&#xff1a;5.7.24数据库架构&#xff1a;主从复制&#xff0c;主库用于生产&#xff0c;从库用于数据容灾和主库备机&#xff0c;采用默认传统的异步复制。主库IP&#xff1a;…

Java+Jmeter接口测试

一、创建工程、引包1、创建JAVA工程2、引入Jmeter中lib\ext基础包&#xff1a;ApacheJMeter_java.jar、ApacheJMeter_core.jar3、引入Jmeter日志包&#xff1a;jorphan.jar&#xff0c;logkit-2.0.jar&#xff0c;commons-logging-1.1.1.jar&#xff0c;avalon-framework-4.1.4…