关于Maven的使用
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的使用的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 理解Maven中的SNAPSHOT版本和正式版本
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 安装eclipse的maven插件
我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...
- MAVEN学习-第一个Maven项目的构建
MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...
- Maven 代理设置
在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies> <!-- proxy | Specificatio ...
- spring maven pom.xml设置
spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- maven 中snapshot版本和release版本的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
随机推荐
- Docker内容总结
Docker内容总结目录什么是Docker?Docker的应用场景有哪些?Docker的优点有哪些?Docker与虚拟机的区别是什么?Docker的三大核心是什么?如何快速安装Docker?如何修改D ...
- 记一次couchbase(memcached)安装以及使用
环境 CentOs 6.5 final 1.下载软件包 wget http://packages.couchbase.com/releases/2.1.0/couchbase-server-enter ...
- 读取本地xml或json等本地文件报错Failed to load file:///D:/xml/test.xml: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
问题如上图: 原因及解析:在浏览器打开本地的html文件, 上面proxy中的url获取的就是一个本地文件, 协议是file://,如果是在服务器启动的话,则使用的是http或者https协议.出于安 ...
- P1068 [NOIP2009 普及组] 分数线划定 题解
目录 题目 思路 code 题目 P1068 [NOIP2009 普及组 思路 算出人数 排序 输出 如果同分也输出 否则break code #include<bits/stdc++.h> ...
- java第六周学习情况
这个星期接到了要开学的消息,心情是非常慌张的,毕竟还没有学到多少东西.但确实是要开学了.心中说不出激动还是紧张,那就带着这种奇妙的情绪记录这次的学习吧 首先必然还是看了相关的程序,记没记下来是另外一说 ...
- imputation-文献:False signals induced by single-cell imputation(scRNA-seq插补引入的假阳性问题)
文章题目 False signals induced by single-cell imputation 中文名: 单细胞插补引起的假信号 文章地址: https://f1000research.co ...
- Word08 创新产品展示说明会邀请函office真题
1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分. 2.这一步非常的简单,打开下载素材文件,在[文 ...
- antd Vue--this.$confirm弹窗使用
看API中this.$confirm弹窗使用不对 讲的也不明确,在此记录下正确的用法 this.$confirm("确认删除文件?",{ type:'error'}).then(( ...
- Coursera Programming Languages, Part B 华盛顿大学 Week 1
来上 programming language 的第二 part 了!这一部分介绍的语言是 Racket,之前就听说过它独特的括号语法,这次来具体了解一下 Racket definitions, fu ...
- 最长上升子序列(LIS) dp典型例题(tzoj 矩形嵌套,Rectangles )
5985: 矩形嵌套 题意:求最长递增子序列(包含两个元素) 思路:先找出关系式子: li=lj+1(当ai<aj时) 两层循环 第一层i从1-n 第二层j 从0-i :求出i前面的每个j 的m ...