教小师妹快速入门Maven,嘿嘿嘿...
最近,小师妹给我发消息,说她在某个项目中看到了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/download.cgi
最新版本是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也已经解压了到我们制定的目录下,比如说:我的解压目录为:
D:\tool\maven\apache-maven-3.6.3
接下来就是配置环境变量(和安装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。并填写内容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tian</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
继续创建文件夹src(存放源码的文件夹)。
进入src目录中,继续创建main文件夹。
再到main文件夹里创建一个java文件夹。
在java文件夹下创建一个HelloWorld.java
。
public class HelloWorld{
public static void main(String [] args){
System.out.println("老田 你好");
}
}
回到maven-demo的目录下,按住Shift键,鼠标右键,选择打开命令窗口。
使用'「mvn compile」'命令:
编译完成后,会在当前目录下增加了一个target目录。
打开target文件夹,可以看到里面有一个classes文件夹,如下图所示:
classes文件夹存放的就是编译成功后生成的.class文件,如下图所示:
使用‘「mvn clean」’命令:
发现有一行日志:
我们使用mvn clean命令的时候,会把target文件夹删掉。
修改仓库
在前面的约定配置中有一项:
~/.m2/repository
Maven默认的本地仓库位置。
repository中存放了相关的jar包。因为代码运行时通常需要依赖其他的jar里的东西,所以这个jar也得需要管理。关于仓库后面有文章专门讲解。
比如说:
全目录为:
C:\Users\Administrator\.m2\repository\junit\junit\3.8.1
发现在C盘,这里强烈的建议,把这个仓库放在自己指定的目录,比如说:E:/repository下面。
如何修改呢?
找到我们前面安装maven目录下:
D:\tool\maven\apache-maven-3.6.3
在conf目录下的server.xml:
打开server.xml文件:
我们添加一项
<localRepository>E:/repository</localRepository>
修改完后,保存。
后面只要我们再次执行"mvn compile"和"mvn clean"这两个命令时,Maven会去中央仓库下载需要的jar包,而第二次执行这两个命令时,由于所需的jar包已经在本地的仓库E:/repository
中存储,所以就可以直接拿来用了,这样就省去了去中央仓库下载jar包的时间。
setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;
以上便是今天分享的Maven入门课程。
总结
本文讲述了什么是Maven、Maven的优点、安装配置、简单使用案例、mvn compile命令和mvn clean命令的使用以及修改本地仓库。
学习不是为了学到已经有的知识,而是为了探索知识的空白领域!愿每个人都能享受学习~
推荐阅读