Maven 入门实战(1)--简介及安装

这篇具有很好参考价值的文章主要介绍了Maven 入门实战(1)--简介及安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Maven 是一种软件项目管理和理解工具;它基于项目对象模型(POM),从中央位置管理项目的构建、报告和文档,并帮助开发人员轻松管理依赖项并自动化构建过程。

1、简介

1.1、项目目录

Maven 使用约定优于配置的原则,提倡使用一个共同的标准目录结构。

目录 说明
${basedir} 项目根目录,存放 pom.xml 和 所有的子目录
${basedir}/src/main/java java 源代码
${basedir}/src/main/resources 资源目录
${basedir}/src/test/java 测试代码
${basedir}/src/test/resources 测试用的资源
${basedir}/src/main/webapp/WEB-INF web 应用目录
${basedir}/target 打包输出目录
${basedir}/target/classes 编译输出目录
${basedir}/target/test-classes 测试编译输出目录
~/.m2/repository Maven 默认的本地仓库目录

1.2、生命周期

Maven 有三个标准的生命周期:

  • clean:项目清理
  • default(build):项目部署
  • site:项目站点文档创建

每个生命周期又包含多个阶段。

1.2.1、clean 生命周期

生命周期阶段 说明
pre-clean 执行一些需要在 clean 之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在 clean 之后完成的工作

1.2.2、default(build) 生命周期

生命周期阶段 说明
validate(校验) 校验项目是否正确,是否包含所有必要信息以完成项目的构建
initialize(初始化) 初始化构建状态,比如设置属性值
generate-sources(生成源代码) 生成用于编译阶段中的任何源代码
process-sources(处理源代码) 处理源代码,比如说,过滤任意值
generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件
process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备
compile(编译) 编译项目的源代码
process-classes(处理类文件) 处理编译生成的文件,比如说对 Java class 文件做字节码改善优化
generate-test-sources(生成测试源代码) 生成用于编译阶段中的任何测试源代码
process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值
generate-test-resources(生成测试资源文件) 为测试创建资源文件
process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录
test-compile(编译测试源码) 编译测试源代码
process-test-classes(处理测试类文件) 处理测试源码编译生成的文件
test(测试) 使用合适的单元测试框架运行测试(如:Juint )
prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备
package(打包) 将编译后的文件及资源文件打包成可分发格式的文件,如:JAR、WAR 或者 EAR 文件。
pre-integration-test(集成测试前) 在执行集成测试前进行的必要动作,如:搭建需要的环境
integration-test(集成测试) 部署项目到可以运行集成测试的环境中
post-integration-test(集成测试后) 在执行集成测试完成后进行的必要动作,如:清理集成测试环境
verify (验证) 运行任意的检查来验证项目包有效且达到质量标准
install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖
deploy(部署) 将最终的项目包复制到远程仓库,与其他开发者和项目共享

1.2.3、site 生命周期

生命周期阶段 说明
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上

1.3、Maven 插件

Maven 每个生命周期中都包含着一系列的阶段(phase);这些 phase 相当于 Maven 提供的统一的接口,这些 phase的实现由 Maven 的插件来完成。我们在输入 mvn 命令的时候,比如 mvn clean,clean 对应的就是 clean 生命周期中的 clean 阶段。但是 clean 的具体操作是由 maven-clean-plugin 来实现的。所以说 Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来:

插件通常提供了一个目标的集合,可以使用下面的语法执行:

mvn [plugin-name]:[goal-name]

例如,一个 Java 工程可以使用 maven-compiler-plugin 的 compile-goal 编译,使用以下命令:

mvn compiler:compile

常用插件:

插件 说明
clean 清理目标文件,删除目标目录
compiler 编译 Java 源文件
surefile 运行 JUnit 单元测试,创建测试报告
jar 构建 JAR 文件
war 构建 WAR 文件
javadoc 为工程生成 Javadoc

1.4、仓库

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有 JAR、WAR、ZIP、POM 文件的地方。Maven 仓库有三种类型:本地(local)、中央(central)、远程(remote)。

1.4.1、本地仓库

Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。运行 Maven 的时候,Maven 所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。Maven 本地仓库目录默认为:%USER_HOME%/.m2/repository;要修改默认位置,可在 Maven 的 settings.xml 文件中设置另一个路径:

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
  <localRepository>d:/repo</localRepository>
/>

1.4.2、中央仓库

Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。中央仓库包含了绝大多数流行的开源 Java 构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的 Java项目依赖的构件都可以在这里下载到。中央仓库不需要配置,但需要通过网络才能访问。maven 社区提供了一个网站用来搜索浏览中央仓库的内容:https://central.sonatype.com/;通过该网站可以方便搜索查看相应的构件。

1.4.3、远程仓库

如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。

1.4.4、Maven 依赖搜索顺序

当我们执行 Maven 构建命令时,Maven 会按照以下顺序查找依赖的库:
步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
步骤 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库。
步骤 3 - 如果没有设置远程仓库,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。

2、安装

在官网(https://maven.apache.org/download.cgi)下载安装包并解压,然后配置环境变量即可;这里使用 3.8.8 版本安装部署。

2.1、Windows 安装

这里假设 Maven 的解压目录为:D:\apache\apache-maven-3.8.8,新建用户变量 MAVEN_HOME

Maven 入门实战(1)--简介及安装

编辑用户变量 Path,添加变量值:%MAVEN_HOME%\bin

Maven 入门实战(1)--简介及安装

打开 cmd,检查安装是否成功:

C:\Users\admin>mvn -version
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: D:\apache\apache-maven-3.8.8
Java version: 1.8.0_321, vendor: Oracle Corporation, runtime: D:\soft\Java\jdk1.8.0_321\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

2.2、Linux 安装

这里假设 Maven 的解压目录为:/home/mongo/soft/apache-maven-3.8.8,编辑 ~/.bash_profile 设置环境变量:

export MAVEN_HOME=/home/mongo/soft/apache-maven-3.8.8
export PATH=$PATH:$MAVEN_HOME/bin

使配置生效:source ~/.bash_profile;然后检查安装是否成功:

app4:[/home/mongo] mvn -verion
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /home/mongo/soft/apache-maven-3.8.8
Java version: 1.8.0_321, vendor: Oracle Corporation, runtime: /home/mongo/soft/jdk1.8.0_321/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

 

 

参考:https://www.runoob.com/maven/maven-tutorial.html。文章来源地址https://www.toymoban.com/news/detail-497859.html

到了这里,关于Maven 入门实战(1)--简介及安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RocketMQ 入门实战(1)--简介

    RocketMQ 是一个纯 Java、分布式、队列模型的开源消息中间件;前身是 MetaQ,是阿里参考 Kafka 研发的一个队列模型的消息中间件,后开源给 Apache 基金会并成为 Apache 的顶级项目,具有高性能、高可靠、高实时、分布式的特点。 Apache RocketMQ 中消息传输和存储的顶层容器,用于标

    2024年02月11日
    浏览(35)
  • Apache Maven简介&安装及系统坏境配置&eclipse配置Apache Maven---详细介绍

         Maven可以简化项目的构建和依赖管理,并提供了一种规范化和可复用的方式来管理Java项目。它广泛应用于Java开发领域,简单来说:它 提供了一个简单而强大的方式来管理项目的构建、依赖关系和文档 在企业级项目中被广泛采用。 构建管理:Maven使用一个中央的配置文

    2024年02月13日
    浏览(42)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven使用前准备

    一.Maven准备 注意:IDEA2019.1.x 最高支持Maven的3.6.0 下载地址:http://maven.apache.org/ Maven底层使用Java语言编写的,所以需要配置JAVA_HOME环境变量及Path 将Maven解压 非中文无空格 目录下 配置 MAVEN_HOME 环境变量及 Path 新建系统变量MAVEN_HOME,添加变量值maven根目录 编辑系统变量Path,添

    2024年02月09日
    浏览(49)
  • 无人机自主飞行实战入门-第一课(简介)

    研究的意义:对人类操作的严重依赖,严重阻碍了泛无人机行业的发展。 飞行汽车(UAM)即将到来,不论是从成本还是安全考虑都需要自主飞行。 传统飞控基于STM32架构设计,无法满足更智能功能所需的计算量,飞控是为了无人机位姿控制所设计,人类操控依然in the loop。

    2024年02月11日
    浏览(36)
  • 软件配置安装(破解)--- maven下载配置

    首先检查一下电脑里有无maven环境,有的话就不用安装了 查看path环境中没有maven,开始准备接下来的重头戏 下载bin.zip版 解压mavenxxxbin.zip (建议把解压的文件放在一个文件夹内,命名英文的environment或者env,注意一定要是英文,这样做是为了把配置的软件环境放在一起以后好

    2024年02月11日
    浏览(60)
  • Maven入门教程(一):安装Maven环境

    视频教程:Maven保姆级教程 Maven入门教程(一):安装Maven环境 Maven入门教程(二):idea/Eclipse使用Maven Maven入门教程(三):Maven语法 Maven入门教程(四):Nexus私服 Maven入门教程(五):自定义脚手架 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项

    2024年02月11日
    浏览(37)
  • SpringCloud入门实战(十五)分布式事务框架Seata简介

    📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。 💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看,更准确、更专业。 💐学习建议:2、然后记住每个技术最关键的特性(通常一句话或者

    2024年02月10日
    浏览(42)
  • DebainDebain常用软件安装:jdk、maven、yum,更换软件源(二)

    目录 一、安装sudo命令 二、安装jdk8 三、更换软件源 四、Debian 安装 yum 五、安装zip、unzip、curl、lrzsz、NUMA 六、安装Maven 七、问题 1) 执行sudo命令,提示 -bash: sudo: command not found的解决方法 apt-get install sudo 如果提示 E: Unable to locate package sudo 的错误,先执行下面的命令: apt-ge

    2024年02月08日
    浏览(45)
  • Halcon软件安装与界面简介

      1. 下载Halcon17版本到到本地 2. 双击安装包后 3. 步骤如下     界面分为四大块 1.    Halcon 的五个助手 1)    图像采集助手:与相机连接,设定相机参数,采集图像 2)    标定助手:九点标定或是其它的标定,生成标定文件及内参外参,可以将像素单位转换为长度单位 3) 

    2023年04月19日
    浏览(109)
  • Proteus--软件简介及安装教程

    (1)简介(完整安装包见文末链接) 本专栏后续所有仿真文件均是基于proteus8.13进行的,在此先简单介绍下软件及安装教程,后续所有的软件操作技巧及注意事项均会在本文持续更新,敬请持续关注~ Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包