教小师妹快速入门 Maven,嘿嘿嘿...
关注“Java 后端技术全栈”
回复“面试”获取全套面试资料
最近,小师妹给我发消息,说她在某个项目中看到了 Maven,感觉还挺小巧精致的,很有兴趣深入学习一下,问我有没有什么快速入门的教程~刚好自己也在整理 Maven 相关的材料,那就拿出来一起交流一下吧。今天主要聊聊 Maven 的快速入门,很多人可能会觉得很简单,但相信您认真看完的话还是会有新滴收获的。
基本介绍
概念
Maven 字面义和准确的发音:
Maven 是 Apache 下面的一个 java 开发的开源项目,官网地址:https://maven.apache.org/
官方介绍:
❝
大致意思是:Maven 是一个意第绪(Yiddish),意思是知识的积累者,最初是为了简化 Jakarta Turbine 项目的构建过程。有几个项目,每个项目都有自己的 Ant 构建文件,它们都略有不同。而 JAR 文件都由 CVS 来维护 。我们需要一种标准的方法来构建项目,一个项目组成的清晰定义,一种发布项目信息的简单方法,以及一种跨多个项目共享 jar 的方法。
❞
Maven 的目标
Maven 的主要目标是为了使开发人员在最短的时间内领会项目的所有状态。为了达到这一目标,Maven 考虑一下五个方面的内容:
1、使得构建过程更加容易,方便编译、打包、发布
2、为每个项目提供统一的配置
3、提供优质项目信息
4、最佳开发实践
5、安装和更新第三插件透明化
Maven 项目的结构和内容是在一个 XML 文件中声明,pom.xml 的项目对象模型(POM),这是整个 Maven 系统的基本单元。
Maven 的优点
Maven 中使用约定,约定 java 源代码代码必须放在哪个目录下,编译好的 java 代码又必须放到哪个目录下,这些目录都有明确的约定。
Maven 的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
只需要定义一个 pom.xml,然后把源码放到默认的目录,Maven 帮我们处理其他事情
使用 Maven 可以进行项目高度自动化构建,依赖管理(这是使用 Maven 最大的好处),仓库管理。
面试问:Maven 是什么
Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于 Java 平台的项目构建,依赖管理和项目信息管理。
项目构建过程
项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。
理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用 maven 就可以帮我们完成上述所说的项目构建过程。
安装与配置
从官网下载:
http://maven.apache.org/downl...
最新版本是 3.6.3。
Maven3.3+版本必须是是 JDK1.7 或者更高的版本。
解压后(解压后的目录中最好「不要出现中文目录」):
目录说明
bin:含有 mvn 运行的脚本
boot:含有 plexus-classworlds 类加载器框架
conf:含有 settings.xml 配置文件
lib:含有 Maven 运行时所需要的 java 类库
LICENSE.txt, NOTICE.txt, README.txt 针对 Maven 版本,第三方软件等简要介绍
安装
首先要确保电脑上已经安装了 JDK(要 jdk 1.7 或更高的版本),配置好 JDK 的环境变量,使用如下的两个命令检查检查 JDK 安装的情况。
配置
JDK 已经安装好了,maven 也已经解压了到我们制定的目录下,比如说:我的解压目录为:
接下来就是配置环境变量(和安装 JDK 有点像,但是配置 Maven 简单点)。
第一步:设置环境变量:MAVEN_HOME。
确定后:
第二步:设置环境变量 Path,将;%MAVEN_HOME%bin
加入 Path 中,一定要注意要用分号;与其他值隔开,如下图所示:
第三步:验证和配置是否成功,打开 cmd 窗口。有的电脑系统版本中看不到 cmd 窗口,需要在搜索里搜索 cmd。有的就是有个“运行”。
或者
输入"mvn –v"命令 查看 Maven 的相关信息,如下图所示:
输出是上面的这个样子,证明我们的 Maven 安装和相关配置都已经成功了。下面我们就来玩一把 Maven。
案例
Maven 项目约定结构
大概的目录如下:
约定配置说明:
目录
目的
${basedir}
存放 pom.xml 和所有的子目录
${basedir}/src/main/java
项目的 java 源代码
${basedir}/src/main/resources
项目的资源,比如说 property 文件,springmvc.xml
${basedir}/src/test/java
项目的测试类,比如说 Junit 代码
${basedir}/src/test/resources
测试用的资源
${basedir}/src/main/webapp/WEB-INF
web 应用文件目录,web 项目的信息,比如存放 web.xml、本地图片、jsp 视图页面
${basedir}/target
打包输出目录
${basedir}/target/classes
编译输出目录
${basedir}/target/test-classes
测试编译输出目录
Test.java
Maven 只会自动运行符合该命名规则的测试类
~/.m2/repository
Maven 默认的本地仓库目录位置
接下来我们就来搞一个案例。
案例
在自己的本地创建一个目录(一般都是 workspace)。然后创建一个 maven-demo 的案例。新建 maven-demo 文件夹:
在 maven-demo 文件夹里创建 pom.xml。并填写内容:
继续创建文件夹 src(存放源码的文件夹)。
进入 src 目录中,继续创建 main 文件夹。
再到 main 文件夹里创建一个 java 文件夹。
在 java 文件夹下创建一个HelloWorld.java
。
回到 maven-demo 的目录下,按住 Shift 键,鼠标右键,选择打开命令窗口。
使用'「mvn compile」'命令:
编译完成后,会在当前目录下增加了一个 target 目录。
打开 target 文件夹,可以看到里面有一个 classes 文件夹,如下图所示:
classes 文件夹存放的就是编译成功后生成的.class 文件,如下图所示:
使用‘「mvn clean」’命令:
发现有一行日志:
我们使用 mvn clean 命令的时候,会把 target 文件夹删掉。
修改仓库
在前面的约定配置中有一项:
Maven 默认的本地仓库位置。
repository 中存放了相关的 jar 包。因为代码运行时通常需要依赖其他的 jar 里的东西,所以这个 jar 也得需要管理。关于仓库后面有文章专门讲解。
比如说:
全目录为:
发现在 C 盘,这里强烈的建议,把这个仓库放在自己指定的目录,比如说:E:/repository 下面。
如何修改呢?
找到我们前面安装 maven 目录下:
在 conf 目录下的 server.xml:
打开 server.xml 文件:
我们添加一项
修改完后,保存。
后面只要我们再次执行"mvn compile"和"mvn clean"这两个命令时,Maven 会去中央仓库下载需要的 jar 包,而第二次执行这两个命令时,由于所需的 jar 包已经在本地的仓库E:/repository
中存储,所以就可以直接拿来用了,这样就省去了去中央仓库下载 jar 包的时间。
setting.xml 主要用于配置 maven 的运行环境等一系列通用的属性,是全局级别的配置文件;
以上便是今天分享的 Maven 入门课程。
总结
本文讲述了什么是 Maven、Maven 的优点、安装配置、简单使用案例、mvn compile 命令和 mvn clean 命令的使用以及修改本地仓库。
学习不是为了学到已经有的知识,而是为了探索知识的空白领域!愿每个人都能享受学习~
推荐阅读
版权声明: 本文为 InfoQ 作者【田维常】的原创文章。
原文链接:【http://xie.infoq.cn/article/a5efc1a8d771b8fbc08166bdb】。文章转载请联系作者。
评论