Maven基础入门

一、maven是什么

  • Apache Maven,是一个项目管理及自动构建的工具,有Apache软件基金会所提供。
  • Maven是用Java语言编写的,是一款可以跨平台的软件。
  • Maven解决了软件构建的两方面问题:一是软件是如何构建的,二是软件的依赖关系。
  • Maven是以基于插件的架构构建的,这使其能够使用任何能用标准输入控制的应用程序。

官网页面:Maven – Welcome to Apache Maven

下载地址:https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip

依赖管理仓库地址:Maven Repository: Search/Browse/Explore (mvnrepository.com)

二、怎么使用

1.下载

2.系统环境变量配置

3.修改配置

① 修改本地仓库

② 修改镜像资源

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>

三、入门

1.坐标

使用三个“向量”在“Maven仓库”中定位到唯一的一个“jar包”

  • groupId:公司或组织的 id

    • groupId:com.jeegole.maven
  • artifactId:一个项目或者是项目中的一个模块的 id
    • artifactId:text-01-maven
  • version:版本号
    • version:1.0-SNAPSHOT

例如:

坐标

<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>

对应Maven仓库位置

Maven本地仓库根目录\javax.servlet\servlet-api\2.5\servlet-api-2.5.jar

四、Maven相关命令使用

1.基础命令

基础命令 作用
mvn compile 主程序编译
mvn test-compile 测试程序编译
mvn install 构建 jar 包存入 Maven 本地仓库
mvn clean 删除 target 目录
mvn package 打包的结果jar 包,存放的目录:target
mvn test 测试命令

2.依赖生效范围

① compile 和 test 对比
main目录(空 间) test目录(空 间) 开发过程(时 间) 部署到服务器(时 间)
compile 有效 有效 有效 有效
test 无效 有效 有效 无效
② compile 和 provided 对比
main目录(空 间) test目录(空 间) 开发过程(时 间) 部署到服务器(时 间)
compile 有效 有效 有效 有效
provided 有效 有效 有效 无效
③ 结论

compile :默认级别,测试环境、开发环境、生产环境都有效,拥有最大权限。

test:测试环境有效,测试过程中使用的 jar 包,以 test 范围依赖进来。比如 junit。

provided:开发环境有效。

3.依赖的传递性

在 A 依赖 B,B 依赖 C 的前提下,C 是否能够传递到 A,取决于 B 依赖 C 时使用的依赖范围。

  • B 依赖 C 时使用 compile 范围:可以传递
  • B 依赖 C 时使用 test 或 provided 范围:不能传递,所以需要这样的 jar 包时,就必须在需要的地 方明确配置依赖才可以。

五、idea中使用

1.创建工程

2.pom.xml

3.使用方式

4.打断点方式

启动类中使用Maven启动,就可以使用debug的方式启动

5.注意部分

① 项目如果报ClassNotFound异常:

.last文件是下载失败的文件,但是它即使失败,也会占据jar包的位置,导致maven不能重新下载,就会导致运行异常。

俗话称之为:占着茅肯不拉屎

② 不是maven项目

③ pom文件失效

关于Maven的使用的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  3. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  4. 安装eclipse的maven插件

    我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...

  5. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  6. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...

  7. spring maven pom.xml设置

    spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  8. maven依赖查询地址

    http://search.maven.org/#search%7Cga%7C1%7C

  9. maven 中snapshot版本和release版本的区别

    maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...

  10. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

随机推荐

  1. 【C++复习】第九章 模板与群体数据(2)

    学习重点:容器类型内部的实现机制,顺便复习前面各章内容.容器类型的具体实现不需要特别关注(目前不需要会裸手写这么一个容器类型) 1.群体/线性群体 群体的概念 群体是指由多个数据元素组成的集合体.群体 ...

  2. c原因学习---指针作为函数的形参

    指针作为函数的形参, 可以改变实参的值. #include<stdio.h> // 交换两个变量的值 int swap(int x, int y) { int k = y; y = x; ...

  3. 01、kafka常用命令

    001.kafka版本 kafka_2.13-3.0.0 kafka_2.12-2.8.0 002.模拟给topic名称是 yikuang 的发一条数据(hello world) ./kafka-co ...

  4. ES6新增运算符 ?? || &&

    运算符(?? || &&) && 与运算符 &&左边表达式为真时执行右边表达式 let a = true let b = 0 a && ...

  5. python sorted() 多重排序

    前言: 最开始是因为看到一道题目, 用一行代码解决[1, 2, 3, 11, 2, 5, 3, 2, 5, 3] 输出[11, 1, 2, 3, 5] 本来想法很简单,先去重后排序 但是遇到一个难点 ...

  6. 几个一看就会的实用JavaScript优雅小技巧

    ️ 前言 这次我就给大家分享一些一看就会的实用JavaScript优雅小技巧. 「难度:」 「推荐阅读时长:5min」 正片 减少if...else面条代码 一旦当我们写到超过两个if...else的 ...

  7. 完全使用vscode开发python

    完全使用vscode开发python 作为Python开发,以前一直使用Pycharm社区版,因为卡顿,尝试使用vscode替换,尝试后并在工作中使用了半个月觉得真香,所以分享给大家. 更详细的视频介 ...

  8. Ubuntu20.04 TLS 开机卡在“A start job is running for wait for network to be Configured”解决

    问题: 安装ubuntu20.04 TLS系统后,开机卡在"A start job is running for wait for network to be Configured" ...

  9. js-模态框的拖动

    效果如下: 代码如下: <div class="clickBtn">点击,弹出登录框</div> <div class="login&quo ...

  10. HDFS 机架感知与副本放置策略

    HDFS 机架感知与副本放置策略 机架感知(RackAwareness) 通常,大型 Hadoop 集群会分布在很多机架上,在这种情况下, 希望不同节点之间的通信能够尽量发生在同一个机架之内,而不是跨 ...