首页 > 其他分享 >Maven

Maven

时间:2023-07-19 15:45:07浏览次数:29  
标签:依赖 项目 仓库 IDEA Maven 坐标

一、Maven概述

1.介绍

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

2.作用

(1)方便的依赖管理;

(2)统一的项目结构;

(3)标准的项目构建流程。

3.官网

http://maven.apache.org/

3.仓库

(1)本地仓库:自己计算机上的一个目录;

(2)中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/

(3)远程仓库(私服):一般由公司团队搭建的私有仓库。

4.Maven安装

(1)解压apache-maven-3.6.1-bin.zip。

(2)配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。

​ <localRepository>...</localRepository>

(3)配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:

image-20230719090011844

(4)配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量;

(5)测试:mvn -v。

二、Maven-IDEA集成

1.配置Maven环境

(1)选择IDEA中Settings->Build,Execution,Deployment->Build Tools->Maven;

(2)设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库属性。

2.IDEA创建Maven项目

(1)创建模块,选择Maven,点击Next;

(2)填写模块名称,坐标信息,点击finish,创建完成。

3.Maven坐标

(1)什么是坐标?

  • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置;
  • 使用坐标来定义项目或引入项目中需要的依赖。

(2)Maven坐标主要组成:

  • groupld:定义当前Maven项目隶属组织名称(通常是域名反写);
  • artifactld:定义当前Maven项目名称(通常是模块名称);
  • version:定义当前项目版本号。

4.IDEA导入Maven项目

(1)方式一:打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击。

(2)方式二:File => Project Structure => Modules => + => Import Module=>要导入工程的pom.xml=>OK。

三、依赖管理

1.依赖配置

(1)依赖:指当前项目所运行所需要的jar包,一个项目可以引入多个依赖。

(2)配置:

  • 在pom.xml中编写<dependencies>标签;
  • 在<dependencies>标签中使用<dependency>引入坐标;
  • 定义坐标的groupld,artifactld,version;
  • 点击刷新按钮,引入最新加入的坐标。

(3)注意事项:

  • 如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖;
  • 依赖的坐标信息,在https://mvnrepository.com/中搜索。

2.依赖传递

(1)依赖具有传递性:

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系;

  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。

(2)排除依赖:排除依赖之主动断开依赖的资源,被排除的资源无需指定版本。

image-20230719151656939

3.依赖范围

(1)依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope>...<scope>设置其作用范围。

(2)作用范围:

  • 主程序范围有效。(main文件夹范围内)
  • 测试程序范围内有效。(test文件夹范围内)
  • 是否参与打包运行。(package指令范围内)

image-20230719152107334

4.生命周期

(1)Maven的生命周期就是为了所有的maven项目构建过程进行抽象和统一。

image-20230719153136731

(2)Maven中有三套相互独立的生命周期:

  • clean:清理工作
  • default:核心工作,如:编译、测试、打包、安装、部署等。
  • site:生成报告、发布站点等。

(3)每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段

image-20230719152535258

(4)主要阶段:

  • clean:移除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试(junit)
  • package:将编译后的文件打包,如:jar、war等
  • install:安装项目到本地仓库

(5)注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

(6)执行指定生命周期的两种方式:

  • 在IDEA中,右侧的maven工具栏,选中对应的生命周期,双击执行。
  • 在命令行中,通过命令执行。例如:mvn compile

标签:依赖,项目,仓库,IDEA,Maven,坐标
From: https://www.cnblogs.com/yang-jc/p/17565773.html

相关文章

  • gradle命令与maven命令对照
    Gradle和Maven都是流行的构建工具,用于管理和构建Java项目。下面是Gradle命令和对应的Maven命令对照:1.构建项目:-Gradle:`./gradlewbuild`-Maven:`mvncleaninstall`2.清除生成的构建文件:-Gradle:`./gradlewclean`-Maven:`mvnclean`3.运行项目:-Gradle:`./g......
  • 实际上手体验maven面对冲突Jar包的加载规则
    一、问题背景相信大家在日常的开发过程中都遇到过Jar包冲突的问题,emm,在最近处理业务需求时我也遇到了不同版本jar包冲突导致项目加载出错的问题。主要是一个完整的项目会不可避免的使用第三方的Jar包来实现功能开发,各种第三方包之间可能会存在依赖关系,不同版本的依赖就会可能导致......
  • maven私服测试案例
    私服测试1、下载私服依赖jar包setting.xml配置<mirrors><!--私服镜像地址--><mirror><id>nexus</id><mirrorOf>*</mirrorOf><url>http://119.......
  • 第五章 搭建maven工程及测试
    搭建maven工程及测试5.1准备pom文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=......
  • mac jdk多版本+maven配置
    单版本配置 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/HomeM2_HOME=/Users/lilun/Documents/apache-maven-3.8.6PATH=$JAVA_HOME/bin:$PATH:.PATH=$M2_HOME/bin:$PATHexportM2_HOMEexportPATHexportCLASSPATHaliasjdk8="......
  • maven配置java 11
    Maven配置Java11作为一名经验丰富的开发者,我将教会你如何配置Maven来使用Java11。下面是整个流程的步骤概述:步骤描述步骤一下载和安装Java11步骤二配置JAVA_HOME环境变量步骤三配置Maven的pom.xml文件现在让我们一步一步详细解释每个步骤需要做什么。......
  • 解决报错Cannot connect to the Maven process. Try again later. If the problem per
    故障描述:使用idea下载java某个源文件,idea报错:CannotconnecttotheMavenprocess.Tryagainlater.Iftheproblempersists,checktheMaven解决方案:修改maven的配置文件......
  • 运行maven项目的配置
     报这个错 运行maven项目时的配置 ......
  • idea中配置maven
    1、找到setting选项 2、设置修改maven的默认配置,下面先点击应用,再点击ok哦 ......
  • Maven多模块项目架构配置介绍和实战
    原文地址:https://ntopic.cn/p/2023071501/源代码先行:Gitee多模块项目仓库:https://gitee.com/obullxl/ntopic-bootGitHub多模块项目仓库:https://github.com/obullxl/ntopic-boot背景介绍我们项目采用的是Maven多模块架构,我发现项目的部分子模块的pom.xml中重复引用了相同的J......