参考
本文是在学习北京尚学堂的maven教学视频后总结的,视频链接:Maven技术
重点
- 在搭建时选择好正确的项目类型。
- pom.xml文件中的配置。
系统环境
- Eclipse版本:4.4.2
- 系统jdk版本:1.7.0_80
什么是maven
Maven是基于项目对象模型的环境搭建工具,个人感觉平时使用的最大作用就是用于合理叙述项目间的依赖关系,同时导入项目需要依赖的jar包,使用tomcat等插件等。
搭建过程
本文主要讲述单个maven项目的搭建过程,多个项目及之间的依赖关系不在此详述。
检查maven插件
- 在eclipse中,点击window->preferences输入maven,一般是有这个插件的,没有的话自行下载。
- 在上一步找到的maven->setting中,找到User settings,从中更改下一步使用到的setting.xml文件路径。
配置环境
在eclipse的安装路径下,找到eclipse/setting.xml文件,在其中修改以下三个地方:
- 本地仓库
- 项目可以通过maven构建获取依赖包,本地库即是计算机本地的一个文件夹,其中放了本地项目使用的依赖包,这样就不用每次新增依赖都到网络上下载,提高构建效率。
- 默认的本地库地址是C:<用户>.m2\repository,在setting.xml文件中,我们只需添加这样一行:
<localRepository>C:\<用户>\.m2\repository</localRepository>
- 阿里镜像
- 本地没有依赖包的前提下,项目会在网上我们称之为中央仓库的地方下载依赖包到本地仓库,再从本地仓库获取依赖包。
- 默认中央仓库 https://repo1.maven.org/maven2/ 是国外网址,速度较慢,所以我们需要配置一个国内的镜像,这里使用阿里的镜像。
- 在setting.xml文件中,我们添加这样一个标签:
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
- jdk版本
- maven默认的jdk版本不会走我们计算机本地配置的版本,所以需要配置跟本地一样的jdk版本。
- 在setting.xml文件中,我们添加这样一个标签:
<profile> <id>jdk-1.7</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> </properties> </profile>
搭建maven项目
在这一步,我们将搭建单个maven项目作为演示:
- 在eclipse中,File->New->project,输入maven,选择maven project,点击Next,勾选Create a simple project,点击Next
- 这里的Group Id(公司,通常为域名倒写),Artifact Id(项目名称),Version(版本号)统称为坐标,共同作为一个项目的唯一标志。
- Packaging表示项目打包后的文件类型,有jar,war,pom可选,这里选择jar,其它选择按需。
- 这里是单个的maven项目,所以Parent Project不用键入,点击Finish,一个简单的maven项目搭建完毕
配置配置文件
项目搭建后,项目目录下存在一个pom.xml文件,这个就是maven的配置文件。
- 定义本项目的坐标:
<groupId>com.crh</groupId> <artifactId>Test3</artifactId> <version>0.0.1-SNAPSHOT</version>
- 在其中我们能够通过dependency引入一个依赖包,具体如下:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.2.RELEASE</version> </dependency>
- 依赖包的坐标可以在 http://mvnrepository.com 中输入搜索得到。
打包发布
- 右键项目–> run as --> maven build–>Goals
- 输入clean tomcat7:run
maven项目之间关系
只做引入,不详谈
- 依赖关系
- 继承关系
- 聚合关系
maven配置文件中标签的含义
- groupId、artifactId、vesion:
- 共同定义该项目坐标,使之可以被其它项目依赖
- dependencies和dependency:
- 用于导入依赖包。
- 格式:
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> </dependencies>
- dependencymanagerment
- 一般用于父项目的dependencies外层的标签,在此中定义了依赖坐标,子项目相同依赖无法更改version值,可以统一项目的版本。
- properties
- 参数配置,一般把版本在此处定义成参数,在后面中通过${参数名}进行引用,统一管理。
- 格式:
<properties> <zookeeper.version>3.4.9</zookeeper.version> <properties>
- build
- 配置插件
- 格式:
<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>80</port> <path>/</path> </configuration> </plugin> </plugins> </build>
- parent
- 聚合关系时, 子项目中使用该标签确定其父项目。
- modules和module
- 聚合关系时,父项目中声明使用到的子项目。