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

python答疑的作用_不学Python之集中答疑(5)

Python不用学&#xff0c;用用你就会。本辑答疑针对Python自然学习法二阶第二单元课程&#xff1a;Q&#xff1a;什么是字典&#xff1f;A&#xff1a;字典也是Python里面的一种多元素数据的存放方式。对于多个元素需要存放在一个变量名下的数据&#xff0c;Python里面常见的有…

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

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

Docker 搭建java+tomcat

1.  准备java和tomcat的软件包 jdk-7u79-linux-x64.tar.gz apache-tomcat-7.0.57.tar.gz 2.  编辑Dockerfile 文件 vim Dockerfile 1 FROM centos  #基本镜像 2 ADD ./jdk-7u79-linux-x64.tar.gz /root  #将jdk拷贝到镜像的 /root 下 3 ADD ./apache-tomcat-7.0.57.ta…

python发邮件主机找不到_Python 使用QQ邮箱发邮件

QQ邮箱太恶心了。经常改验证方式阿福最近的脚本不能用了&#xff0c;研究了一上午。终于研究出来了。def sendmail(data):content data[content]msg MIMEText(content,_subtypeplain,_charsetutf8)msg[Subject] data[Subject]msg[From] data[From]msg[To] ;.join(data[mail…

创建并发布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内…

python 文件状态_Python:如何访问文件的状态

一、案例&#xff1a;在某些项目中&#xff0c;需要获取文件的状态文件状态&#xff1a;os.stat(path)1、文件的类型&#xff1a;普通文件、目录、符号链接、设备文件或管道(一般在Linux上)。。。2、文件的访问权限&#xff1a;一般为读、写、执行&#xff0c;3个权限&#xff…

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系统安装桌面日历应该如…

Ubuntu下gcc多版本共存和版本切换

https://my.oschina.net/u/2306127/blog/538139 摘要: Ubuntu系统使用的gcc版本随着发布版本的不同而不同&#xff0c;在编译android系统时不同的版本推荐用不同的gcc去编译&#xff0c;那么可不可以改变系统的gcc来适应android编译环境的需求呢&#xff1f;答案是可以的。 Ubu…

手动导入maven项目依赖jar包

当通过坐标引入依赖jar包时&#xff0c;经常会出现下载失败或导入失败&#xff0c;需要手动去导入。 通过maven 仓库地址&#xff1a;https://mvnrepository.com/下载或其他方式拷贝的对应依赖jar包到本地。打开cmd命令窗口输入以下命令&#xff1a; mvn install:install-file…

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

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

spring MVC报错:A child container failed during start

严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.rep…

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(…

luogu P1659 养猪 dp 好理解

P1659 养猪 题目描述 你有一个猪圈&#xff0c;有N头猪&#xff0c;每天你最多可以杀一头猪卖钱&#xff0c;获益就是猪的体重。但是每过一天每头猪的体重都会下降P[i]&#xff08;当然&#xff0c;如果猪体重<0了&#xff0c;自然获利为0&#xff09;&#xff0c;问K天内你…

Mysql数据库---约束类型_mysql数据库的数据类型及约束

1、整型MySQL数据类型含义(有符号)tinyint(m)1个字节 范围(-128~127)smallint(m)2个字节 范围(-32768~32767)mediumint(m)3个字节 范围(-8388608~8388607)int(m)4个字节 范围(-2147483648~2147483647)bigint(m)8个字节 范围(-9.22*10的18次方)取值范围如果加了unsigned&am…

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方法中要确定每个单元格的…