maven学习笔记 maven的安装和配置

2023-11-07

maven是什么

maven是一个Java项目管理工具。maven提供了大量命令行工具,可以方便的管理java项目建立、开发、测试、打包、生成、部署等各个生命周期的操作,极大的方便开发者。同时,maven还提供了统一的项目结构,简化了项目的处理流程。

maven是一个Java项目的依赖管理工具。当项目中使用了多个第三方包的时候,传统的手工导入方式就不能胜任了。各种第三方包的依赖、冲突,都会导致项目编译错误。利用maven,可以一次性解决所有问题,让依赖管理变成配置文件的简单修改。

maven还是一个开放的插件平台。maven提供了大量插件,官方的和各个第三方包的。利用这些插件,可以更大程度上的简化项目开发的难度,解放开发者的生产力。

maven的安装

maven是基于java编写而成的,需要JRE或者JDK才能运行。所以首先需要正确安装JDK并配置好环境变量。安装和配置JDK可以参考我我的这篇文章Windows平台Java开发环境的搭建

下载maven二进制包

对于Linux平台,安装mzven非常容易。利用各个发行版提供的包管理器,只需要一条命令就可以安装maven了。例如Debian和Ubuntu,输入以下命令:

$ sudo apt install maven

Fedora则需要输入:

$ sudo dnf install maven

ArchLinux需要输入:

$ sudo pacman -S maven

对于Windows平台,稍稍有些麻烦。首先到maven下载页面找到Binary zip archive这样的字样,然后点击右面的link即可下载。目前maven的版本是3.3.9。
下载完毕之后将其解压,放置到你想放置的位置。

配置环境变量

下载好maven之后,还需要配置环境变量。对于Linux,不需要配置环境变量,包管理器会自动帮你完成这些设置。Windows平台打开此电脑->属性->高级系统设置->环境变量,然后添加一个M2_HOME,值为你放置maven程序的位置。然后在PATH变量中增加一个%M2_HOME%\bin的值即可。需要注意多个值之间需要添加英文分号,不要搞错了。

配置好环境变量之后,就可以测试一下maven是否安装正确。输入以下命令,如果出现了maven版本号等信息,说明安装正确。否则需要重新检查是否下载了正确的maven包并配置正确环境变量。

$ mvn -v

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: D:\devtools\apache-maven
Java version: 1.8.0_72, vendor: Oracle Corporation
Java home: D:\Program Files\Java\jdk1.8.0\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

maven的配置

找到maven主目录,也就是M2_HOME环境变量所对应的目录,然后进入conf文件夹,会发现有settings.xml和toolchain.xml两个配置文件。我们主要配置settings.xml文件。XML文件的编辑器我推荐使用sublime或者notepad++,或者Eclipse等IDE自带的XML编辑器也可以。Windows自带的记事本应用没有语法高亮等,编辑起来不太方便。

打开settings.xml文件,会发现其中有大量的注释,说明了每个片段的意义和用法。因此这里只简单说明一下。

节点名 意义 默认值
localRepository maven包的下载位置 用户主目录下的.m2/repository
interactiveMode 是否启用交互模式 true
offline 在构建项目的时候是否应该离线 false
pluginGroups 配置插件的搜索范围的,下面还有pluginGroup节点
proxies 指定maven下载包的时候可以使用的代理,如果有多个会使用第一个
servers 指定maven使用的服务器
mirrors 指定maven下载包使用的镜像服务器
profiles 指定maven使用的一个或多个配置文件
activeProfiles 指定对于所有项目构建的配置文件

下面是我的配置文件,去掉了注释。设置默认的项目构建版本为JDK8,并且在构建的时候同时下载依赖项的文档和源代码。本来用的是开源中国的镜像,但是好像很早以前开源中国的镜像就挂了。所以这里改成了阿里爸爸的了。

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>D:\devtools\m2_repo</localRepository>
    <offline>false</offline>
    <interactiveMode>true</interactiveMode>
    <pluginGroups></pluginGroups>
    <proxies></proxies>
    <servers></servers>
    <mirrors>
        <mirror>   
            <id>alimaven</id> 
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
    <profiles>
        <profile>
            <id>jdk-1.8</id>
            <activation>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
                <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>jdk-1.8</activeProfile>
    </activeProfiles>
</settings>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven学习笔记 maven的安装和配置 的相关文章

随机推荐

  • swagger mock文档服务器,通过 Swagger 定义自动生成 Mock 数据

    我最近的在做的项目是一个前后端分离的项目 前后端由不同的团队分别开发 并且前端的进度经常领先后端 这就意味着 当前端在开发一个新功能时 API 可能还没有准备好 不过 我们会先和后端先商议好 API Schema 然后使用 Mock 数据进
  • 使用PowerDNS实现内网DNS解析

    部署环境 公司内部安装powerdns实现局域网服务dns解析 避免通过ip访问 系统 CentOS 7 9 mysql版本 5 7 33 pdns版本 4 4 1 pdns recursor版本 4 4 2 PowerDNS admin版
  • ARTS挑战打卡的100天,我学到了这些

    前言 知道ARTS打卡计划是来源于陈皓的极客时间教程 在大学期间就知道了陈皓 左耳朵耗子 骨灰级程序员 差不多就是看着他的博客成长 后来在极客时间上发现了他的课程 就买下来了 现在学习了75 过程中发现了ARTS打卡计划 一直不敢尝试 一个
  • 第二课:变量和数据类型

    第二课 变量和数据类型 一 了解什么是变量 为什么需要它 1 计算机中的内存分类 1 RAM 运行时存储 我们的计算机程序在运行的时候 数据就会临时存储在RAM中 如果不持久化 或着突然断电 它的数据就丢失了 2 ROM 只读存储 持久化存
  • css伪元素实现方框上面打钩

    html p class skill three con item frame p css skill three con item frame width 36px height 36px background transparent b
  • 深入浅出SQL(7)-ALTER

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 ALTER 改写历史 使用ALTER命令 可以修改表 对其套用新的设计方法 且不会影响现有数据 本章还会学到规范化的意义 我们要规范化我们的表 由于重新建了本地数据库
  • unity2d物理系统在安卓闪退的坑

    记录下2d物理系统安卓闪退的坑 之前的2d横版动作游戏和现在的幸存者游戏都出现过同样的问题 通过一步一步的排查 确定是Unity Project Setting Physics 2D Auto Sync Transfroms 这里勾选上的问
  • c盘清理

    https jingyan baidu com article ea24bc39ebefadda62b33180 html 转载于 https www cnblogs com zach0812 p 11557586 html
  • 神舟笔记本进入BIOS的方法

    最近整了一个i9 8950h的神舟笔记本 默认预装的是windows 10 总结一下进入BIOS的方法 方法一 重启电脑 黑屏的时候 不断按F2键 这个方法的优点是操作简单 缺点是有时候会进不去 直接进入桌面 方法二 系统设置 gt 更新和
  • IDEA工作常用快捷键

    ide快捷键 Intellij IDEA 移动光bai标du到行尾的快捷键是End Intellij IDEA 移动光标到行首的快捷键是Home Home End键的意思是开头 结尾 在记事dao本或word等其他文本工具中也有同样的效果
  • Java的Integer.valueOf()初窥

    前言 今天在做题时 碰到了一道选择题 就是关于Integer valueOf 的知识 题目如下 A System out println i01 i02 B System out println i01 i03 C System out p
  • js string转json有斜杠_详解json串反转义(消除反斜杠)

    JSon串在被串行化后保存在文件中 读取字符串时 是不能直接拿来用JSON parse 解析为JSON 对象的 因为它是一个字符串 不是一个合法的JSON对象格式 例如下面的JSON串保存在文件中 读出来不能直接解析 resourceId
  • C++类模板的特化(三)

    本文主要介绍类模板的特化 局部特化和缺省模板实参 1 类模板的特化 类模板的特化 Class Template Specialization 是指为特定的模板参数提供自定义实现的过程 通过特化 我们可以针对某些特定的类型或条件提供不同的行为
  • Java分页工具类

    通用分页工具类 import java io Serializable import java util List b 分页通用类 b author hcw param
  • 自定义同步器

    自定义同步器 假如你想要实现一个自定义同步器 官方推荐的做法是将继承了AQS类的子类作为自定义同步器的内部类 而自定义同步器中相关的操作只需代理成子类中对应的方法即可 往下用一个简单的例子看看如何实现自己的锁 由于同步器被分为两种模式 独占
  • [USACO

    网址链接或者是链接 题目描述 After spending so much time around his cows Farmer John has started to understand their language Moreover
  • 域用户登录的方式-使用登录主名和登录名登录

    1 1 1 域用户登录的方式 以下演示域用户使用登录名或登录主名在域中的计算机上登录 销售部的域用户账号 王瑞胜 在销售部的计算机Sales上登录 默认显示上次登录过的帐户 点击 切换用户 点击 其他用户 使用登录名登录 输入ESS wan
  • C++类型擦除

    转自 http www cnblogs com liyiwen archive 2009 12 10 1621451 html 关于类型擦除 在网上搜出来的中文资料比较少 而且一提到类型擦除 检索结果里就跑出很多 Java 和 C 相关的文
  • 使用Clang作为编译器 —— Assembling a Complete Toolchain

    装配一个完整的工具链 1 介绍 2 工具 2 1 Clang 前端 2 2 其他语言的语言前端 2 3 汇编器 2 4 链接器 3 运行时库 3 1 编译器运行时 Compiler runtime 3 2 原子库 Atomics libra
  • maven学习笔记 maven的安装和配置

    maven是什么 maven是一个Java项目管理工具 maven提供了大量命令行工具 可以方便的管理java项目建立 开发 测试 打包 生成 部署等各个生命周期的操作 极大的方便开发者 同时 maven还提供了统一的项目结构 简化了项目的