首页 > 其他分享 >Maven入门

Maven入门

时间:2023-02-04 17:37:54浏览次数:48  
标签:依赖 入门 项目 仓库 Maven 坐标 scope

Maven入门

为什么使用Maven?

每一种IDE的项目结构可能都不一样,如Idea的项目要让Eclipse直接打开使用是做不到的,而Maven是专门用于管理和构建Java项目的工具,它提供了一个标准,当各IDE使用Maven创建项目,那么项目就可以通用。

Maven的主要功能有:

1.提供了一套标准化的项目结构,如图: image.png

2.提供了一套简单的命令来标准化地构建流程(编译,测试,打包,发布.....)

3.提供了一套依赖管理机制,通过编辑pom.xml进行管理项目依赖的第三方资源,如jar包、插件等

配置Maven

  1. 官网下载并解压Maven

  2. 配置环境变量:将Maven的bin目录设置为 MAVEN_HOME,在Path新增 %MAVEN_HOME%\bin ,输入mvn -version可查看是否配置好

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

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

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/repository/public</url>
  <mirrorOf>central</mirrorOf>
</mirror>

依赖管理

Maven使用坐标作为第三方依赖的单位,坐标组成如下:

  1. groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itheima)
  2. artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
  3. version:定义当前项目版本号
  4. scope:依赖坐标的范围

如何导入依赖?

  1. 在pom.xml中编写<dependencies>标签
  2. <dependencies>标签中使用<dependency>引入坐标, 可以从https://mvnrepository.com/中获取依赖的坐标代码
  3. 定义坐标的groupld, artifactld, version
  4. 点击刷新按钮,使坐标生效

Maven仓库

image.png

在pom.xml添加了依赖坐标后,依赖库中就会出现所需要的第三方依赖,而这第三方依赖就是来自于==仓库==

仓库分为三类:

  • 本地仓库:自己计算机的一个目录
  • 中央仓库:由Maven团队维护的全球唯一的仓库,https://repo1.maven.org/maven2/
  • 远程仓库:私服,一般是由公司团队搭建的私有仓库

当项目需要用到第三方依赖时,Maven会先从本地仓库找寻,若本地仓库没有该依赖,则从中央仓库或远程仓库下载到本地仓库继续使用。

依赖的作用范围

通过设置坐标的依赖范围(scope:默认值为compile。),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。 image.png

compile :作用于编译环境、测试环境、运行环境。

test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值

provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须将 scope 设置为该值,不然运行时就会报错

runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题

如果引入坐标不指定 scope 标签时,默认就是 compile 值。以后大部分jar包都是使用默认值。

流程构建指令

基础指令

  1. compile 编译,将java源文件编译成class文件,在项目下会生成一个 target 目录,编译后的字节码文件就放在该目录下
  2. clean 清理,删除target文件夹
  3. test 测试,执行test目录下的测试用例
  4. package 打包,将项目打成jar包
  5. install 安装,将当前项目放到Maven的本地仓库中,供其他项目使用

使用: $ mvn compile

这里推荐一款Maven插件:MavenHelper,可以更快捷地使用Maven命令 image.png

“构建项目”的生命周期

Maven构建项目生命周期描述的是一次构建过程经历了多少个事件。

Maven对项目构建的生命周期划分为3套: image.png

  1. clean:清理工作
  2. default:核心工作,例如编译,测试,打包,安装等
  3. site:产生报告,发布站点等

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

例如默认(default)生命周期,当我们执行 install 命令时,它会依次执行 compile、test、package、install。

默认的生命周期也有对应的很多命令,其他的一般都不会使用,我们只需要关注常用的即可:

image.png

标签:依赖,入门,项目,仓库,Maven,坐标,scope
From: https://blog.51cto.com/u_15910817/6037177

相关文章

  • IM开发者的零基础通信技术入门(十):零基础,史上最强5G技术扫盲
    本文引用了“鲜枣课堂”的《史上最强5G科普》文章内容。为了更好的内容呈现,在引用和收录时内容有改动,转载时请注明原文来源。1、内容概述➊5G技术的关注度越来越高:在此......
  • Maven9 - 生命周期
    生命周期作用为了让构建过程自动化完成,Maven设定了三个生命周期,生命周期中的每一个环节对应构建过程中的一个操作。三个生命周期生命周期名称作用各个环节C......
  • Maven8 - 聚合
    Maven聚合聚合本身的含义部分组成整体动画片《战神金刚》中的经典台词:“我来组成头部!我来组成手臂!”就是聚合关系最生动的体现。Maven中的聚合使用一个“总工程”......
  • saber 2.7.1 maven 配置
    私服2.7.1旧版本失效,加载maven本地jar包  ......
  • Maven7 - 依赖排除
    测试依赖的排除概念当A依赖B,B依赖C而且C可以传递到A的时候,A不想要C,需要在A里面把C排除掉。而往往这种情况都是为了避免jar包之间的冲突。所以配置依......
  • Maven6 - 依赖传递
    测试依赖的传递性依赖的传递性概念A依赖B,B依赖C,那么在A没有配置对C的依赖的情况下,A里面能不能直接使用C?传递的原则在A依赖B,B依赖C的前提下,C是否能够......
  • Python大数据处理利器,PySpark的入门实战
    PySpark极速入门一:Pyspark简介与安装什么是Pyspark?PySpark是Spark的Python语言接口,通过它,可以使用PythonAPI编写Spark应用程序,目前支持绝大多数Spark功能。目前Spark官方在......
  • Maven5 - 依赖范围
    测试依赖的范围依赖范围标签的位置:dependencies/dependency/scope标签的可选值:compile/test/provided/system/runtime/importcompile和test对比main目录(空间)t......
  • vue入门(二)-cnblog
    vue入门(二)1.过滤器一个函数在插值表达式中使用,对插值的值进行再处理{{username|toUpCase}}示例<!DOCTYPEhtml><htmllang="en"><head><metacharset......
  • vue入门(一)-cnblog
    vue入门(一)1.什么是vue一个框架(现有的解决方案)构造用户界面(操作html页面的内容)2.vue的特性数据驱动视图页面所依赖的数据发生变化时,vue会监听数据的变化,重新......