· 今天开始学习Maven,谈谈Maven的基本入门配置。
Maven是Apache的一个顶级项目,是一个项目管理工具,比较重要的我觉得是有两点,一个是要掌握她的依赖管理,另一个是分模块的开发。
把以前的ssm项目用过maven进行管理,基本可以熟悉maven的开发。
在以后的开发中,基本脱离不了分模块开发,把写好的代码写好放在maven的远程仓库当中,通过maven工程的依赖管理实现远程加载库,通过坐标、对应的配置文件找到对应的包。
第一步:
安装maven插件的开发工具,注意:maven本身在eclipse里面有一个内置maven插件,比较高版本的eclipse都有maven插件,最好我们自己装一个maven,
我们使用Spring Tool Suite ,这个ide是spring公司基于eclipse开发的,在eclipse基础上加了spring插件,专门开发spring的工具,专门针对spring应用程序,如springBoot、springCloud等开发,当然开发普通的web工程也没有问题。
第二步:
去apache下载安装maven插件,
解压包到c盘的Program Files当中
第三步:
修改maven配置
注意:eclipse和Spring Tool Suite(STS)里面是有一个内置的maven版本,一般使用这个maven会有问题,我们希望手动配置一下maven配置,
打开eclispe或者STS,
打开Window——》Perferences——》Maven——》Installations
完成以上配置后,要注意,
maven的仓库是很重要的,它包括远程仓库和本地仓库,首先远程仓库这个是保存在远程服务器当中。官方地址是:https://mvnrepository.com
注意:里程坐标是实现maven远程加载jar包的基础,必须装配。
缺点:需要宽带,没有宽带就不能实现远程加载仓库。
当第一次加载jar包时,将加载到本地的仓库。
当前电脑需要创建一个本地的仓库文件夹,用于保存下载的仓库。(文件夹不一定放在maven的安装目录,但是路径不能出现中文,否则可能 失败失败)如下:repository这个名称最好不要乱改。
接着:
修改settings文件。(找到本地的maven安装路径下的conf文件夹 我的是C:\Program Files\apache-maven-3.6.0\conf,修改settings.xml文件配置)
修改完成后保存。
复制一份settings,xml文件到本地仓库的根目录下,
接下来修改eclipse或者STS下的maven路径配置
打开eclispe或者STS,
打开Window——》Perferences——》Maven——》User Settings
完成后,maven的本地配置已经基本完成,接下来创建一个项目测试一下:
以下是Maven的常用命令,有些后续会在Eclipse中使用,读者可先阅读参考:
【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服务
mvn clean package -Dmaven.test.skip=true:
清除以前的包后重新打包,跳过测试类
13.2 使用Maven管理项目
本章重点要掌握的是Maven的依赖管理和模块化开发。学习之前先了解Maven工程的目录结构,首先在Eclipse中创建Maven工程,步骤如下:
(1) 创建Maven工程,图13-9
图13-9
这里创建的是Maven Project,Maven Module不能单独创建,它是Maven Project的模块,必须先有Maven Project才有Maven Module。后续会介绍。
(2) 创建简单Maven工程,图13-10
图13-10
(3) 配置工程参数,图13-11
图13-11
这里要注意的是Packaging选项,一共有:jar、pom、war,表示打包类型。jar包是一般java工程、pom是聚合工程、war是web工程。Parent Project是依赖的父工程,这里可以为空。最后点击“Finish”,工程创建完毕。
Maven工程创建后,先要了解工程的目录结构,如图13-12:
图13-12
src目录下main/java存放java源文件;main/resources存放各种资源和配置文件,例如,properties属性文件和xml文件。test/java和test/resources存放单元测试文件。target文件夹存放编译后的文件,例如,jar包、war包等。
Maven工程中最重要的是pom.xml文件,pom是“Project Object Model”的缩写,它是用来管理项目的依赖和编译等功能的。我们先要关注以下两个元素:
- 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>
- dependency元素
dependency元素内部通过groupId,artifactId以及version确定唯一的依赖,这三个参数称为“坐标”。
groupId
: 组织的唯一标识。
artifactId
: 项目的唯一标识。
version
: 项目的版本
以上两个元素是定义依赖关系的,只要“坐标”正确,就会从中央仓库或本地仓库导入相应的类库。见图13-13所示:
图13-13
上图左侧是pom.xml文件的依赖关系定义,右侧是工程目录结构。项目先从本地仓库(本地仓库的配置参考前方讲解)查找是否有相应的类库,如果没有再到中央仓库中去找。而且一旦从中央仓库引用包后,项目会把包下载到本地仓库中,便于下次再次使用。这也说明Maven管理项目必须要连通网络。
中央仓库的访问地址:http://mvnrepository.com/ 如图13-14。
在搜索框中输入要依赖的类库,选中类库相应的版本,就可以进一步获取该版本类型的依赖“坐标”了。