一、认识Maven

官网

http://maven.apache.org/

上面有最权威的说明,其中包括下载、安装、运行示例,但是是英文版的。

Maven是什么

Maven是一个项目管理工具。

它有何优点呢?

  1. Maven可以使得项目的构建变得简单:传统项目构建过程中,所要用到的一些Jar依赖,都需要自己手动去查找,下载,导入,才能使用,Maven的中央仓库提供我们项目中所需的大多数依赖资源,我们只需要编辑pom文件,Maven就能自动在网上去下载响应的jar包,以供我们使用。那么也就是说Maven的使用是要联网的。

  2. Maven提供统一的构建系统:就是说所有的Maven项目的构建标准是相同的,只要熟悉一个Maven项目,那么就可以看懂所有Maven项目是如何构建的

Maven能干什么

  1. Maven可以管理jar文件
  2. 自动下载jar和它的文档,源代码
  3. 管理jar直接的依赖,比如a.jar需要b.jar,Maven就会自动下载b.jar
  4. 管理我们需要的jar版本
  5. 帮使用者编译程序,把java编译成class
  6. 测试代码
  7. 打包文件,形成jar文件或war文件
  8. 部署项目

Maven构建项目的步骤

  1. 清理:删除以前的编译结果,为新的编译做好准备
  2. 编译:将java源程序编译为字节码文件
  3. 测试:针对项目中的关键点进行测试,保证项目在迭代开发过程中关键点的正确性
  4. 报告:在每一次测试后以标准的格式记录和展示测试结果
  5. 打包:将一个包含诸多文件的工程封装为一个压缩文件(jar或者war)用于安装和部署,java工程对应jar,web工程对应war
  6. 安装:在Maven环境下,特指将打包的结果——jar或war安装到本地仓库中
  7. 部署:将打包结果部署到远程仓库或将war包部署到服务器上运行

Maven核心概念

  1. POM:一个叫做pom.xml的文件,官方叫做项目对象模型,Maven帮我们做的事情都是安装这个文件的要求去做的,所以可以通过编辑这个文件去控制Maven的项目构建、依赖管理、打包安装等。
  2. 约定的目录结构:Maven项目目录和文件位置是有统一规范的
  3. 坐标:一个唯一的字符串,用来表示资源
  4. 依赖管理:管理项目中可以使用的jar文件
  5. 仓库管理:资源存在的位置
  6. 生命周期:Maven工具构建项目的过程,就是生命周期
  7. 插件和目标:执行Maven构建的时候用的工具就是插件,目标就是我们要做的事情,比如打包,安装等
  8. 继承:
  9. 聚合

后面会逐一详细介绍。

二、Maven的安装和配置

第一步:去官网下载Maven压缩包

第二步:解压到一个文件夹既是安装完成

注意两个重要的东西:bin目录下的mvn.cmd,构建项目时需要用这个;conf目录下的settings.xml,这是Maven的配置文件,之后的修改本地仓库位置的操作在这里进行

第三步:配置环境变量

此电脑--->右键属性--->高级系统设置--->环境变量

在系统环境变量中添加一个环境变量:

变量名:M2_HOME

变量值:D:\Programs\Maven\apache-maven-3.8.1(Maven解压的路径,因人而异)



在path中添加:%M2_HOME%\bin

注意:这里需要配置JAVA_HOME并指定jdk路径





验证环境变量是否配置成功:在命令行中输入mvn -v显示如下信息,表示配置成功

三、设置本机存放资源的目录位置

Maven有一个本地仓库,用来存放Maven插件啊各种资源,这些资源会在第一次使用Maven编译项目的时候下载到本地仓库,本地仓库的默认位置是:

C:\Users\Admin.m2\repository

(这里的Admin是我的用户名)

下面介绍修改这个位置的方法:

修改Maven配置文件

Maven安装目录/conf/settings.xml(防止修改失误,最好先备份一个)

修改<localRepository>标签



这里我修改为D:\ProgramData\Maven_work\Repository,注意反斜杠要修改为斜杠,路径中不要有中文

修改之后

修改之后的效果是,项目中使用Maven的时候,会使用这个仓库中的资源,之后再从网络上下载的资源也会存放到这个仓库中去,直到下次修改仓库位置。


Maven学习笔记1:Maven基本介绍和安装配置的更多相关文章

  1. MAVEN学习笔记之Maven插件的应用(4)

    MAVEN学习笔记之Maven插件的应用(4) <build> <pluginManagement> <plugins> <plugin> <gr ...

  2. MAVEN学习笔记之Maven生命周期和插件简介(3)

    MAVEN学习笔记之Maven生命周期和插件简介(3) clean compile site三套生命周期相互独立. clean pre-clean 执行清理前的工作 clean 清理上一次构建生成的所 ...

  3. Maven学习笔记:Maven简介

    Maven的概念 Maven是基于项目对象模型(POM,Project Object Model),可以通过描述信息来管理项目的构建,报告和文档的软件管理工具 Maven除了以程序构建能力为特色之外, ...

  4. httperf学习笔记(CentOS-6.6环境下安装配置)

    新工作已经找到了,最近在忙着熟悉环境,昨天领导让我接触下httperf压力测试工具 百度了下,相关的文档,准备着手配置一个测试环境基于linux系统httperf+autobench+gnuplot, ...

  5. Maven学习笔记(一) : 简单介绍

    近期在学习<maven实战>,写点东西记录一下.^_^ 何为Maven:      Maven主要服务于基于java平台的项目构建.依赖管理和项目信息管理. Maven是优秀的构建工具: ...

  6. MongoDb 学习笔记(一) --- MongoDb 数据库介绍、安装、使用

    1.数据库和文件的主要区别 . 数据库有数据库表.行和列的概念,让我们存储操作数据更方便 . 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功能 ...

  7. 【转】Nginx 学习笔记(十一)nginx下安装配置naxsi waf防火墙(附完整编译、配置)

    原文地址:http://f2ex.cn/nginx-installed-configuration-naxsi-waf/ Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开 ...

  8. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  9. Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  10. Maven学习笔记—仓库

    Maven仓库 1 什么是Maven仓库 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以成为构件,而Maven通常在某个位置统一的存储所有Maven项目共享的构件,这个统一的位置就是Ma ...

随机推荐

  1. React使用portal提示 The types returned by 'render()' are incompatible between these types.  Type 'ReactPortal' is not assignable to type 'ReactNode'.   Type '{}' is not assignable to type 'ReactNode'.

    原因:组件返回了个不是<></>的东西 原先代码: export default class Index extends React.PureComponent { rende ...

  2. Linux服务器中了挖矿木马怎么办?-挖矿木马自助清理手册

    什么是挖矿木马 挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响服务器上的其他应用的正常运行.黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞 ...

  3. Kubernetes--用kubeadm搭建集群环境

    架构 k8s的组件架构图 OCI (Open Container Initiative) 开放容器标准.是一个轻量级,开放的治理结构(项目),在 Linux 基金会的支持下成立,致力于围绕容器格式和运 ...

  4. 通过Jsoup,爬取车辆品牌,车系,LOGO等

    @Test public void test4() throws IOException { for (int i = 65; i <= 90; i++) { String value = St ...

  5. 配置windows server多个用户同时使用一个账户远程服务器

    首先,需要服务器开启远程桌面连接: 右键点击"这台电脑"弹出菜单栏,选择"属性"   弹出系统窗口,点击"远程设置"   弹出系统属性窗口, ...

  6. ELK收集njinx

    前提:安装elk 1.yum安装nginx 2.修改配置文件 vim /etc/nginx/nginx.conf.d 3.重新启动 nginx -s reload 4.安装压测命令 压测文件 5.写完 ...

  7. python中的字典数据读取

    ①字典中嵌套字典 res1={'content': {'age': '47岁', 'ageOne': 47, 'ageOneUnit': '1', 'ageTwo': '8', 'ageTwoUnit ...

  8. WPF Binding表达式

    前言: WPF BindingBinding表达式的使用,可以很方便的绑定参数和更新界面数据. 1.界面添加控件,并设置对应属性的Binding表达式,例如: <Window x:Class=& ...

  9. jquery.min.js:2 Uncaught SyntaxError: Unexpected identifier

    错误描述:样式没加载出错,还没发起action请求,action有断点,后端无报错. 错误原因:找了好久,知道是url请求路径错误,搞了几次不对.重新对比url发现是路径拼接错误.注意单引号和双引号. ...

  10. 使用commitizen规范提交

    npm install -g commitizen cz-conventional-changelog echo '{ "path": "cz-conventional- ...