Maven
Maven是Apache的一个开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。它是一个构建工具,可以帮助我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。
Maven 工程结构和内容被定义在一个 xml 文件中 - pom.xml,是 Project Object Model (POM) 的简称,此文件是整个 Maven 系统的基础组件。关于POM文件配置详解,见博文Maven pom.xml 配置详解
Maven 使用约定而不是配置,意味着开发者不需要再自己创建构建过程,不需要再关心每一个配置细节。因为Maven 为工程提供了合理的默认行为。当创建 Maven 工程时,Maven会创建默认的工程结构。开发者只需要合理的放置文件,而在 pom.xml 中不再需要定义任何配置。且它要求在没有定制之前,所有的项目都有如下的结构:
目录 | 作用 |
---|---|
${basedir} | 存放 pom.xml和所有的子目录 |
${basedir}/src/main/java | 项目的 java源代码 |
${basedir}/src/main/resources | 项目的资源,比如说 property文件 |
${basedir}/src/test/java | 项目的测试类,比如说 JUnit代码 |
${basedir}/src/test/resources | 测试使用的资源 |
${basedir}/target/classes | 编译后的classes存放路径 |
${basedir}/target | 项目JAR文件目录 |
Maven 环境配置要求
因为Maven是基于Java的,所以需要提前安装JDK。Maven安装要求如下:
项目 | 要求 |
---|---|
Java Development Kit (JDK) | Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 |
内存 | 没有最低要求 |
磁盘 | Maven 自身安装需要大约 10 MB 空间。除此之外,额外的磁盘空间将用于你的本地 Maven 仓库。你本地仓库的大小取决于使用情况,但预期至少 500 MB |
操作系统 | 没有最低要求,启动脚本是作为shell脚本和Windows批处理文件。 |
Maven环境安装配置
Maven 下载
这里使用的事官网最新Maven版本 Maven 3.3.9 。
下载后,解压下载后的压缩包到本地。
目录类似:D:\Maven\apache-maven-3.3.9
Maven 环境变量配置
添加 M2_HOME、M2、MAVEN_OPTS 到环境变量中。
操作系统 | 变量 |
---|---|
Windows | M2_HOME=D:\Maven\apache-maven-3.3.9 M2=%M2_HOME%\bin (将%M2%;添加到系统的path变量末尾) MAVEN_OPTS=-Xms256m -Xmx512m |
Linux | 命令终端中设置环境变量: export M2_HOME=/usr/local/apache-maven-3.3.9 export M2=$M2_HOME/bin export MAVEN_OPTS=-Xms256m -Xmx512m |
Mac | 命令终端设置环境变量: export M2_HOME=/usr/local/apache-maven-3.3.9 export M2=$M2_HOME/bin export MAVEN_OPTS=-Xms256m -Xmx512m |
配置完成后,在命令行窗口中输入mvn --version (或 mvn -v)
来验证Maven的安装配置是否正确。配置正确显示如下:
PS : 设置MAVEN_OPTS环境变量,主要用于解决Maven构建项目时,java默认的最大内存不足以支持Maven运行,导致出现
java.lang.OutMemeoryError
错误。不建议修改Maven目录下的bat等脚本文件。
修改Maven仓库的位置
Maven仓库,用于存放项目所依赖的所有jar包。
这里设置仓库位置为:E:\workspace\maven\repo
,目录可以自定义,注意避免中文目录。
在..\Maven\apache-maven-3.3.9\conf
中的settings.xml文件中添加创建的仓库路径。
配置完成后可以通过命令mvn help:system
来测试,这个命令会打印Java系统属性及平台属性详细信息。初次执行会从中央仓库下载文件到本地。
下载完成后,进入repo
目录,会看到多了很多文件,此时再执行mvn help:system
即会看到Platform Properties Details。
Maven项目
Maven项目创建
进入目录E:\workspace\maven
创建项目命令如下:
mvn archetype:generate -DgroupId=com.mavenstudy.app -DartifactId=app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -Dversion=1.0
创建项目时所依赖的jar包第一次均来自Maven中央仓库,后续创建项目时,则从本地的Maven仓库中获得所需要的jar包。
生成项目的目录结构如下:
树形目录结构如下:
PS:关于POM文件配置详解,见博文Maven pom.xml 配置详解
Mave项目编译
进入项目目录..\maven\app
,输入命令mvn clean compile
完成项目的编译
其中clean
用于清空target
,compile
用于编译项目代码。
编译后的文件存储在target
目录下,目录结构:
目录树形结构:
eclipse导入Maven项目
Maven创建的项目,不能直接导入eclipse中,需要使用mvn eclipse:eclipse
命令来转换目录结构
在将项目导入eclipse前,需要在Classpath Variables中配置Maven仓库:
Window -> Perferences -> Java -> Build Path -> Classpath Variables
配置完成后,通过import导入项目,导入到eclipse中后的目录结构:
Maven项目插件更新
需要更新项目中插件的版本,只需要修改POM.xml文件中插件对应的版本号,如上面创建的项目中,使用的junit版本为3.8.1,这里使用junit4的4.8.1版本,修改如下:
修改完成后通过命令mvn eclipse:eclipse
来实现更新。