什么是Maven

Apache Maven,是一个软件,一个项目管理工具,它包含了一个项目对象模型 (Project Object Model POM),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

  1. POM:POM(project object model)是Maven对一个单一项目的描述。POM是Maven的核心,它是一个XML文件,包含了Maven用来创建项目所需要的项目配置的信息。

Maven 能够帮助我们干什么?

简言之,Maven 可以帮助我们完成以下工作:

  • 项目构建
  • 文档管理
  • 生成测试报告
  • 解决项目间依赖项
  • 源代码版本管理
  • 项目Releases
  • 项目的分发

功能摘要(摘自官网)

  1. 遵循最佳实践的简单项目设置 - 在几秒钟内启动新项目或模块
  2. 所有项目的一致使用 - 意味着新开发人员进入项目的时间不会增加
  3. 卓越的依赖管理,包括自动更新,依赖关闭(也称为传递依赖)
  4. 能够轻松地同时处理多个项目
  5. 一个庞大且不断增长的库和元数据库,可以立即使用,并与最大的开源项目一起安排,以实现最新版本的实时可用性
  6. 可扩展,能够轻松编写 Java或脚本语言的插件
    只需很少或不需要额外配置即可即时访问新功能
    用于在Maven之外进行依赖关系管理和部署的Ant任务
  7. 基于模型的构建:Maven能够根据项目的元数据将任意数量的项目构建到预定义的输出类型(如JAR,WAR或分发)中,而无需在大多数情况下执行任何脚本。
  8. 项目信息的连贯站点:使用与构建过程相同的元数据,Maven能够生成包含您需要添加的任何文档的网站或PDF,并添加有关项目开发状态的标准报告。在“项目信息”和“项目报告”子菜单下,可以在本网站左侧导航栏的底部看到此信息的示例。
  9. 发布管理和发布发布:没有太多额外配置,Maven将与您的源代码控制系统(如Subversion或Git)集成,并根据特定标记管理项目的发布。它还可以将其发布到分发位置以供其他项目使用。Maven能够发布单个输出,例如JAR,包含其他依赖关系和文档的存档,或者作为源代码分发。
  10. 依赖管理:Maven鼓励使用JAR和其他依赖项的中央存储库。Maven附带了一种机制,您的项目客户可以使用该机制从中央JAR存储库下载构建项目所需的任何JAR,就像Perl的CPAN一样。这允许Maven的用户跨项目重用JAR并鼓励项目之间的通信,以确保处理向后兼容性问题。

Maven安装和配置

配置Maven环境

注意,安装Maven前要首先配置jdk环境变量,否则运行mvn -v查看Maven版本时会出现以下提示

  1. 下载apache-maven文件(最新版本:3.6.3):
    下载地址:http://maven.apache.org/download.cgi
  2. 解压文件至文件夹
    注意:文件路径不要含有中文字符及空格
  3. 配置环境变量
  • Windows环境

    • 新建:MAVEN_HOME(M2_HOME) :
      D:\server\maven\apache-maven-3.5.0 (自己的文件解压路径)

    • 修改path:在path最后面添加:
      ;%MAVEN_HOME%\bin

    • 打开命令提示符,输入: mvn -v,显示以下信息表示配置成功

  • 基于Unix的操作系统(Linux和Mac OS),以Mac OS为例。

    • 打开终端,输入: vim ~/.bash_profile,按Enter

    • 添加以下代码并退出vi:
      export M2_HOME=/usr/local/apache-maven-3.5.4(解压后的文件夹路径)
      export PATH=$PATH:$M2_HOME/bin
      (退出vi:1.按Shift + ;2.输入:wq 3.按Enter)

    • 输入命令: source ~/.bash_profile,按Enter

    • 输入命令:mvn -v 显示以下信息表示配置成功

配置Maven本地仓库、镜像仓库

  1. 根据个人情况,新建仓库文件夹;

  2. 配置Maven\conf\文件夹中setting.xml文件

    • 配置本地仓库地址(根据自己的情况选择路径)

    <localRepository>D:\Apps\Maven\repository</localRepository>

    • 配置镜像
      在 <settings><mirror></mirrors></settings> 之间插入以下代码(阿里云镜像)
    
    

    <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>

  3. 了解更详细的setting.xml的配置,可以访问以下网址:http://www.cnblogs.com/yangxia-test/p/4409736.html

IDEA中配置及使用Maven

IDEA配置Maven

IDEA自带了apache maven,默认使用的是内置maven,所以我们可以配置全局setting,来调整一下配置。

在IDEA中使用Maven创建项目

  1. 依照以下步骤创建项目

第一次创建项目需要等待一段时间,Maven需要下载jar包

目录:

还需要自己创建一些文件夹,创建完成后结构如下


java:存放源代码
com.chixing:存放个模块
resources:存放资源文件
test/java:存放测试代码
test/resources:存放测试所需资源文件

通用目录结构

|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |   `-- resources
|   |   `-- filters
|   `-- test
|   |   `-- java
|   |   `-- resources
|   |   `-- filters
|   `-- it
|   `-- assembly
|   `-- site
`-- LICENSE.txt
`-- NOTICE.txt
`-- README.txt

src/main/java 项目的源代码所在的目录
src/main/resources 项目的资源文件所在的目录
src/main/filters 项目的资源过滤文件所在的目录
src/main/webapp 如果是web项目,则该目录是web应用源代码所在的目录,比如html文件和web.xml等都在该目录下。
src/test/java 测试代码所在的目录
src/test/resources 测试相关的资源文件所在的目录
src/test/filters 测试相关的资源过滤文件所在的目录
上面的目录结构,我们接触的比较多,而下面的这些目录结构,用的相对不是很多:

src/it 集成测试代码所在的目录,主要是供别的插件使用的。
src/assembly 组件(Assembly)描述符所在的目录
src/site 站点文件
LICENSE.txt 项目的许可文件
NOTICE.txt 该项目依赖的库的注意事项
README.txt 项目的readme文件

  • 在根目录下,主要有两个目录,分别是srctarget目录,除此之外,还会有一些版本控制系统的元数据文件,包括git的.gitignore或者svn的.svn

修改设置:


Maven常见命令

命令 含义
mvn archetype:create 创建Maven项目
mvn compile 编译源代码
mvn test 运行应用程序中的单元测试
mvn install 在本地Respository中安装jar
mvn clean 清除项目目录中的生成结果
mvn site 生成项目相关信息的网站
mvn package 根据项目生成jar

Maven生命周期

Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”的。这三套生命周期分别是:

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
  • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
  • Site Lifecycle 生成项目报告,站点,发布站点。

Maven的简单配置说明相关推荐

  1. Maven实战. 3.7NetBeans Maven插件简单使用

    3.7NetBeans Maven插件简单使用 NetBeans的Maven插件也十分简单易用,我们可以轻松地在NetBeans中导入现有的Maven项目,或者使用Archetype创建Maven项目 ...

  2. 有人说 Maven 很简单,我却被 伤害 过

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随 ...

  3. maven setting.xml配置说明

    setting.xml view plaincopy to clipboardprint? <?xml version="1.0" encoding="UTF-8& ...

  4. db2v9/9.5高级应用开发_Spark v2.4.3应用程序开发入门-基于IDEA/Maven 构建简单应用

    Spark 提供了丰富的API,让开发人员可以使用简洁的方式,来处理复杂的数据计算和分析. 在开始Spark应用开发之前,需要做好如下准备工作. (1)搭建好Hadoop环境(如果需要访问HDFS): ...

  5. maven 程序包不存在_有人说 Maven 很简单,我却被“伤害”过

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...

  6. maven 一个简单项目 —— maven权威指南学习笔记(三)

    目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...

  7. 在eclipse上使用Maven创建简单项目

    1.鼠标右键New -> Project -> Maven -> Maven Project 2.勾选 "Create a simple project( skip arc ...

  8. maven项目编译不了java文件_无法使用Maven编译简单的Java 10 / Java 11项目

    我有一个简单的Maven项目: src └── main └── java └── module-info.java pom.xml pom.xml中: org.example example 1.0 ...

  9. Java的Web项目使用DWR简单配置说明

    为什么80%的码农都做不了架构师?>>>    首先使用Maven引入DWR的Jar包 <dependency><groupId>org.directwebr ...

最新文章

  1. LeetCode 450 Delete Node in a BST(二叉搜索树中的删除结点)
  2. Linux系统CentOS下mysql的安装日志
  3. (转载)Hadoop2.7.1配置
  4. 汇编语言典型例子详解_从架构到 RTOS 详解 DSP 和 MCU 的区别和联系
  5. iOS开发  plist字段列表,很全
  6. Oracle弱智100问
  7. 数学基础加强2---概率论与贝叶斯先验
  8. Git 可视化管理工具 - Sourcetree 使用指南
  9. 不知道前端课程学什么?这份完整的web前端课程大纲分享给你
  10. pythontiff怎么设置_在python中使用tiff文件
  11. LaTeX插入参考文献教程 | 非BibTeX格式
  12. php提取网页mp3,介绍三种提取网页中音乐URL网址的方法
  13. 算法成华纳旗下歌手?背景音乐经济
  14. Redis大数据应用场景
  15. DC-DC同步升压芯片PW5100替代PC1961,原厂供应
  16. 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介
  17. 命令控制qq自动申请远程控制
  18. 公众号互推还是要的,要不怎么让更多人看到可爱的我呢?
  19. html - 移动标签 marquee 属性
  20. java.lang.IllegalStateException: No instances www.xxxx.com available for localhost

热门文章

  1. python-基础知识
  2. 人工智能对教育产业的冲击和机遇分析 ——游戏化学习
  3. 根据xml生成相应的对象类
  4. python计时器timeit返回秒数_python中的计时器timeit的使用方法
  5. q87主板支持cpu型号_怎么选内存,看主板和CPU的支持,取一致性约束
  6. 就业指导——招聘信息的获取、简历投递和指导、HR面试指导
  7. gson解析天气json_几种常用JSON解析库性能比较
  8. 如何加快Vivado的编译速度
  9. mysql 线性表_数据结构-线性表之顺序表
  10. java system_深入分析java中的System