maven 基础用法 (终端界面和IDEA界面)

目录

maven定义

Maven环境配置

仓库

本地仓库

关于pom.xml

运行方式

关于maven在IDEA创建


maven定义

Maven 是一个项目管理和整合工具。通过对 目录结构和构建生命周期 的标准化, 使开发团队用极少的时间就能够自动完成工程的基础构建配置。

​ Maven 简化了工程的构建过程,并对其标准化,提高了重用性。

Maven环境配置

第1步:   安装 jdk 1.8

第2步:设置 JAVA_HOME环境变量,并将 Java 编译器地址添加到系统路径 path 中;

第3步:下载 Maven  地址 :  Maven – Download Apache Maven

第4步:    配置 maven 的相关环境变量

 在环境变量增加 M2_HOME,路径是 maven 解压后的根目录



 在环境变量里的 path 中增加 maven/bin 的目录

第5步 : 验证

在cmd命令行中输入命令:   mvn -v 查看 Maven 版本

Maven工程必须按照约定的目录结构创建 

根目录:工程名
|---src://源码
|---|---main: //存放主程序
|---|---|---java: //源码文件
|---|---|---resources: //存放框架的资源文件
|---|---test://存放测试程序
|---|---|---java: //java测试文件
|---|---|---resources: //java测试的资源文件
|---pom.xml://maven的核心配置文件 

pom.xml文件说明
Maven 工程结构和内容被定义在 pom.xml 文件中,是 Project Object Model (POM) 的简称,此文件是整个 Maven 系统的基础组件。
Maven 使用约定优于配置的原则,即开发者不需要再自己创建构建过程。Maven 为工程提供了合理的默认行为。当创建 Maven 工程时,Maven 会创建默认的工程结构。开发者只需要合理的放置文件,而在 pom.xml 中不再需要定义任何配置 

仓库

仓库是一个位置(place),比如目录,可以存储所有的工程 jar 文件。

Maven 仓库有两种类型:

  • 本地仓库(local):程序员自己电脑上存储资源的仓库,通过连接远程仓库获取资源
  • 远程仓库(remote):非自己电脑上的仓库,为本地仓库提供资源
    • 中央仓库:Maven团队维护,存储所有资源的仓库
    • 私服:公司范围内存储资源的仓库,从中央仓库获取资源,仅对内部开放,不对外共享
本地仓库

Maven 本地仓库是机器上的一个文件夹,它在你第一次运行任何maven命令的时候创建。

Maven 本地仓库保存你的工程的所有依赖。当你运行一次 Maven 构建命令,Maven 会自动下载所有依赖的 jar 文件到本地仓库中。它避免了每次构建时都引用存放在远程机器上的依赖文件。

本地仓库存放位置

本地仓库默认被创建在 C:\Users\用户名\.m2 目录下。要修改默认位置,在 %M2_HOME%\conf 目录中的 settings.xml 文件中定义另一个路径。

<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>${user.home}/.m2/repository</localRepository>
</settings>

 当运行 Maven 命令,Maven 将下载依赖的文件到你指定的路径中。

中央仓库
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
中央仓库的关键概念:
这个仓库由 Maven 社区管理。
不需要配置。
需要通过网络才能访问。
Maven中央仓库地址:https://mvnrepository.com/
开发人员可以在此中央仓库中搜索所有可以获取的代码库。

设置阿里镜像

<!--添加如下配置:设置阿里镜像库-->
<mirror><id>ali</id><name>ali Maven</name><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public/</url>
</mirror>

设置成功后,会从阿里的镜像库中获取依赖,不会从 Maven 中央仓库中获取依赖了。 

复制此文件内容 将文件重命名为 settings.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"><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><mirror><id>ali</id><name>ali Maven</name><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public/</url></mirror></mirrors><profiles></profiles><activeProfiles></activeProfiles></settings>
关于pom.xml

​ POM 即工程对象模型。它是使用 Maven工作时的基本组件,是一个 xml 文件。放在工程根目录下,文件命名为 pom.xml。

​ POM 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程。

​ 当执行一个任务或者目标时,Maven 会查找当前目录下的 POM,从其中读取所需要的配置信息,然后执行目标。

​ 在创建 POM 之前,首先确定工程组(groupId),及其名称(artifactId)和版本,在仓库中这些属性是工程的唯一标识。

什么是坐标?
Maven中的坐标用于描述仓库中资源的位置
仓库资源地址: https://repo1.maven.org/maven2/

获取MySQL驱动的 jar 包

<dependency><!--工程组的标识,它在一个组织或者项目中通常是唯一的,公司或域名倒序+项目名--><groupId>mysql</groupId><!--工程的名称,模块名--><artifactId>mysql-connector-java</artifactId><!--工程的版本号--><version>8.0.31</version>
</dependency>

坐标标签

坐标标签
节点描述
groupId这是工程组的标识,在一个组织或者项目中通常是唯一的
artifactId这是工程的标识,通常是工程的名称
version这是工程的版本号,在artifact仓库用来区别不同的版本

<scope>标签代表指定依赖范围

**compile **默认值,适用于所有阶段(开发,测试,部署,运行),本jar会一直存在所有阶段

**runtime **只在运行时使用,如JDBC驱动,适用运行和测试阶段;

**test   **只在测试时使用,用于编译和运行测试代码,不会随项目发布

**provided ** 只在开发,测试阶段使用

maven 生命周期

maven 生命周期
命令作用
mvn compile

编译主程序src/main ,生成target目录,

存放编译主程序生成字节码文件,输出到target/classes

mvn test -compile编译测试程序src/test ,生成target目录,存放编译器测试程序生成字节码文件,输出到target/classes
mvn test 编写的测试代码并生成测试报告(目前相对于后端开发没有太多作用
mvn package将项目打成jar包
mvn clean清空项目本地编译目录
mvn install 将项目 安装到本地仓库(多个项目相互依赖相互使用)
运行方式

方式1:在终端或命令提示符中运行Maven 命令;找到对应要maven的项目运行

运行之后  你在pom.xml配置的依赖的包已经导入到仓库了

根目录下多了一个target 文件夹

 方式2:在 IDEA 中运行 Maven命令。

 注意运行 mvn clean 

 清理项目,删除 target 目录及其内容。执行 mvn clean 命令会清理之前编译、测试等操作的中间文件,以便于重新构建项目。
target文件夹被删除了,又回到了编译之前我们手动创建的文件夹

 

关于maven在IDEA创建

创建一个maven 文件

 点击maven的刷新,添加依赖

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

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

相关文章

计算机网络的七层模型

序 OSl(Open System Interconnect)&#xff0c;即开放式系统互联。一般都叫OSI参考模型。在网络编程中最重要的模型就是OSI七层网络模型和TCP/IP四层网络模型 一、OSI七层参考模型以及功能概述 二、各层的具体职能以及实际应用 1.应用层&#xff1a; OSI参考模型中最接近用…

Docker 入门介绍及简单使用

Docker 的简单介绍 中文官网&#xff1a;Docker中文网 官网 英文官网&#xff1a;Docker: Accelerated Container Application Development Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包应用及其依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 …

C语言单向链表的经典算法

1.分割链表 2.移除链表元素 3.反转链表 4.合并两个有序链表 5.链表的中间结点 6.环形链表的约瑟夫问题 1.分割链表: 1.思路&#xff1a;创建新链表&#xff0c;小链表和大链表。如图 代码如下 /*** Definition for singly-linked list.* struct ListNode {* int val…

【读论文】【泛读】三篇生成式自动驾驶场景生成: Bevstreet, DisCoScene, BerfScene

文章目录 1. Street-View Image Generation from a Bird’s-Eye View Layout1.1 Problem introduction1.2 Why1.3 How1.4 My takeaway 2. DisCoScene: Spatially Disentangled Generative Radiance Fields for Controllable 3D-aware Scene Synthesis2.1 What2.2 Why2.3 How2.4…

如何在PPT中获得网页般的互动效果

如何在PPT中获得网页般的互动效果 效果可以看视频 PPT中插入网页有互动效果 当然了&#xff0c;获得网页般的互动效果&#xff0c;最简单的方法就是在 PPT 中插入网页呀。 那么如何插入呢&#xff1f; 接下来为你讲解如何获得&#xff08;此方法在 PowerPoint中行得通&#…

Unity 点击次数统计功能

介绍 &#x1f4a1;.调用方便&#xff0c;发生点击事件后直接通过"xxx".CacheClick缓存 &#x1f4a1;. 在允许的时间间隔内再次点击会累计点击次数&#xff0c;直到超出后触发事件 传送门&#x1f448;

记录一下hive跑spark的insert,update语句报类找不到的问题

我hive能正常启动&#xff0c;建表没问题&#xff0c;我建了一个student表&#xff0c;没问题&#xff0c;但执行了下面一条insert语句后报如下错误&#xff1a; hive (default)> insert into table student values(1,abc); Query ID atguigu_20240417184003_f9d459d7-199…

【GD32】_时钟架构及系统时钟频率配置

文章目录 一、有关时钟源二、系统时钟架构三、时钟树分析四、修改参数步骤1、设置外部晶振2、选择外部时钟源。3、 设置系统主频率大小4、修改PLL分频倍频系数 学习系统时钟架构和时钟树&#xff0c;验证及学习笔记如下&#xff0c;如有错误&#xff0c;欢迎指正。主要记录了总…

基于springboot的扶贫助农系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

用海外云手机高效率运营TikTok!

很多做国外社媒运营的公司&#xff0c;想要快速引流&#xff0c;往往一个账号是不够的&#xff0c;多数都是矩阵养号的方式&#xff0c;运营多个TikToK、Facebook、Instagram等账号&#xff0c;慢慢沉淀流量变现&#xff0c;而他们都在用海外云手机这款工具&#xff01; 海外云…

二级综合医院云HIS系统源码,B/S架构,采用JAVA编程,集成相关医保接口

二级医院云HIS系统源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能&#xff0c;还能与公卫…

【muzzik 分享】关于 MKFramework 的设计想法

MKFramework是我个人维护持续了几年的项目&#xff08;虽然公开只有一年左右&#xff09;&#xff0c;最开始由于自己从事QP类游戏开发&#xff0c;我很喜欢MVVM&#xff0c;于是想把他做成 MVVM 框架&#xff0c;在论坛第一个 MVVM 框架出来的时候&#xff0c;我的框架已经快完…