最近在开发javaweb项目中有用到maven,以前并不是很了解,于是学习了一些相关内容,记之共享。
本篇内容在Windows环境下实施,JDK版本使用的1.7.0_79。
一、maven是什么?
简单来说,maven是一个项目构建工具。
开发人员都有过这样的经历:在项目开发中,为了提高效率,不重复“造轮子”,经常会引用第三方的jar包。一般的做法是:上网搜索,下载jar包,配置到项目的依赖目录下,调用。若引用的jar包较少,这种方式倒也没什么;可如果项目中需要引入大量的jar包,且各依赖包之间可能存在版本冲突时,jar包的管理工作将变得特别繁琐。
maven的存在就可以轻松解决这个问题。只需在IDE环境中配置好maven,然后新建maven项目,并通过在pom.xml文件中写入简单的配置,就能自动实现jar包的下载和管理。jar包的添加、删除以及版本管理都讲变得十分便捷!
这是maven最常用的功能,至于其他功能,这里暂时不作深究。
二、maven的安装和配置
1、安装JDK。maven是基于java语言开发的,因此在安装maven之前,必须确保计算机已经安装了JDK(maven可以运行在JDK1.4及以上版本中)。JDK的安装这里就不做介绍了,网上的教程非常多,傻瓜式安装,然后配置好环境变量即可。打开windows命令行,输入——“java -version”,若显示出java的版本信息,说明计算机已经成功配置好了JDK环境。
2、下载maven。下载地址:http://maven.apache.org/download.html。其中列举了针对不同平台下的各种版本的maven安装文件。初识maven者建议选择apache-maven-版本号-bin.zip文件下载。若想了解maven源码,可以下载apache-maven-版本号-src.zip文件。
3、安装maven。maven的安装十分简单,只需将下载的.zip后缀的压缩包解压到你想放置的目录即可。这里的安装以apache-maven-3.3.9-bin.zip文件为例:解压apache-maven-3.3.9-bin.zip,得到apache-maven-3.3.9的文件夹,这里将其放到D://softwares/路径下。安装后需要配置maven的环境变量。右键“我的电脑”,点击“属性”——“高级系统配置”——“环境变量”,在系统变量中点击“新建”:【变量名:M2_HOME;变量值:D://softwares/apache-maven-3.3.9】,点击确认。在系统变量中找到path,双击进行编辑,在变量值的末尾加上%M2_HOME%/bin(注意各值之间需要用“;”分隔)。确认保存退出。打开windows命令行,输入——“mvn -version”,若显示出maven的版本信息,说明计算机已成功配置好了maven环境。
三、在eclipse配置使用maven
有些eclipse版本中默认集成了m2eclipse模块,即可以直接新建maven项目,如eclipse mars。若你的eclipse中没有新建Maven Project的选项,你可以选择在eclipse中安装m2eclipse模块,点击eclipse菜单栏中的“Help”——“Install New Software...”,然后输入【Name:m2e;Location:http://m2eclipse.sonatype.org/sites/m2e/】。按步骤安装即可。当然你也可以选择使用集成好了m2eclipse模块的其他版本的eclipse。
安装了m2eclipse模块的eclipse中也会自动内嵌一个maven环境,但由于其版本较新,通常不太稳定,因此通常重新配置eclipse,使其指向我们上一步安装在本地的maven环境。点击eclipse菜单栏中的“Windows”——“Preferences”,点击弹窗中左侧栏中的“Maven”——“Installation”,默认情况下是Embedded Maven被选中。点击add按键,选择我们上一步安装的maven根目录M2_HOME,添加后,选中这一个外部的maven应用后退出。
四、创建Maven项目
打开eclipse,在项目explorer中右键“New”——“Project”——“Maven”——“Maven Project”,点击Next,选择项目存放目录,再点击Next,在下拉框中选中Artifact Id为“maven-archetype-webapp”,点击Next,在Group Id中输入包名,如:com.vike,在Artifact Id中输入项目名,如:helloworld。最后点击finish。
在创建的maven项目helloworld的目录结构中,可以看到一个pom.xml的文件(POM:Project Object Model),它是maven项目的核心,项目中需要管理的jar包配置就是写在该文件中。打开pom.xml,可以看到项目的一些基本信息,如刚才输入的包名前缀,项目名等。若需要添加jar包依赖,可以在<project>标签内添加<dependencies>标签,然后在该标签下添加各个jar的<dependency>标签。<dependency>标签的格式如下:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> <dependencies>
这段配置中最重要的是groupId、artifactId、version三行,这三个元素定义了一个项目的基本坐标,在maven的世界里,任何的jar、war、pom都是基于这些信息进行区分的。项目中需要任何jar包的上述三个元素的信息,可以到http://mvnrepository.com/网站中进行搜索。
有时项目中会同时使用很多个某一类的jar包,他们的版本号version相同,为了便于版本的管理,会在<project>标签中添加<properties>标签,定义常量,如<spring-version>1.2.3</spring-version>,这样后续的同版本号的jar包的<dependency>中<version>标签中的值就可以写成${spring-version}。
补充:
由于maven项目下载以来的jar包,默认是从国外的maven仓库下载,由于一些原因,通常下载速度会很慢,为了提高速度,可以配置镜像,使用使用国内的阿里云提供的maven仓库来下载。
找到maven安装路径M2_HOME/conf/settings.xml,在其中的mirrors标签中,添加如下代码:
<mirror> <id>alimaven</id> <name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
从maven仓库下载的jar包会被放置到:C:\Users\你的用户名\.m2\repository中。
maven学习推荐书籍:《Maven in action》