Maven的主要作用:
1. 依赖管理
2. 分模块开发
【Maven常用命令】
mvn archetype:create 创建Maven项目
mvn compile 编译源代码
mvn deploy 发布项目
mvn test-compile 编译测试源代码
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除项目目录中的生成结果
mvn package 根据项目生成的jar
mvn install 在本地Repository中安装jar
mvn eclipse:eclipse 生成eclipse项目文件
mvn jetty:run 启动jetty服务
mvn tomcat:run 启动tomcat服务
配置Maven环境变量
将maven环境变量添加到path环境变量中: %MAVEN_HOME%\bin
创建本地仓库和配置settings.xml文件
首先创建本地仓库文件夹,例如:D:\apache\maven\repository,然后打开maven安装目录(解压目录)的config文件夹,使用文本编辑器打开settings.xml文件。指定本地仓库的路径,如图13-4所示:
图13-4
把文件中注释的<localRepository>提取出来修改路径即可。
然后,复制settings.xml文件到D:\apache\maven中,目录结构可参考图13-5:
图13-5
打开cmd命令行窗口,输入指令mvn –version,出现图13-6,说明配置成功
图13-6
在Eclipse中配置Maven
其实Javaee Eclipse已经内置了Maven插件,但是我们也有必要学习怎样配置自己的Maven。打开Eclipse的WindowàPreferences,如图13-7
找到Maven,选中Installations,发现有一项EMBEDDED,这是内置的Maven,去掉前面的勾选。点击“Add”指定Maven的安装目录即可。然后,再选中左侧菜单中“User Settings”,见图13-8的操作:
使用Maven管理项目
本章重点要掌握的是Maven的依赖管理和模块化开发。学习之前先了解Maven工程的目录结构,首先在Eclipse中创建Maven工程,步骤如下:
(1) 创建Maven工程,图13-9
这里创建的是Maven Project,Maven Module不能单独创建,它是Maven Project的模块,必须先有Maven Project才有Maven Module。后续会介绍。
(2) 创建简单Maven工程,图13-10
(3) 配置工程参数,图13-11
这里要注意的是Packaging选项,一共有:jar、pom、war,表示打包类型。jar包是一般java工程、pom是聚合工程、war是web工程。Parent Project是依赖的父工程,这里可以为空。最后点击“Finish”,工程创建完毕。
Maven工程创建后,先要了解工程的目录结构,如图13-12:
src目录下main/java存放java源文件;main/resources存放各种资源和配置文件,例如,properties属性文件和xml文件。test/java和test/resources存放单元测试文件。target文件夹存放编译后的文件,例如,jar包、war包等。
Maven工程中最重要的是pom.xml文件,pom是“Project Object Model”的缩写,它是用来管理项目的依赖和编译等功能的。我们先要关注以下两个元素:
1。dependencies元素
dependencies元素包含多个项目依赖,需要使用的dependency标签,下面是导入junit和mybatis的依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
</dependencies>
2. dependency元素
dependency元素内部通过groupId,artifactId以及version确定唯一的依赖,这三个参数称为“坐标”。
groupId: 组织的唯一标识。
artifactId: 项目的唯一标识。
version: 项目的版本
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
以上两个元素是定义依赖关系的,只要“坐标”正确,就会从中央仓库或本地仓库导入相应的类库。见图13-13所示:
上图左侧是pom.xml文件的依赖关系定义,右侧是工程目录结构。项目先从本地仓库(本地仓库的配置参考前方讲解)查找是否有相应的类库,如果没有再到中央仓库中去找。而且一旦从中央仓库引用包后,项目会把包下载到本地仓库中,便于下次再次使用。这也说明Maven管理项目必须要连通网络。
中央仓库的访问地址:http://mvnrepository.com/ 如图13-14。在搜索框中输入要依赖的类库,选中类库相应的版本,就可以进一步获取该版本类型的依赖“坐标”了。