项目构建工具maven的使用方法
最近在开发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》
项目构建工具maven的使用方法的更多相关文章
- Java项目工程化之项目构建工具Maven
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- 走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
小李的Build之路(上) 转自: 刘欣 码农翻身 2016-07-10 摘要:手工Build的烦恼要不是为了和女朋友留在一个城市,小李肯定去北上广奋斗去了.现在他只能留在这个2.5线城市,进入这家软 ...
- java项目构建工具Maven
一.java-maven常用命令 mvn archetype:create 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编 ...
- 项目构建工具Maven
- 取代 Maven?这款项目构建工具性能提升 300%
在 GitHub 上闲逛的时候,发现了一个新的项目:maven-mvnd,持续霸占 GitHub trending 榜单好几天了. maven-mvnd,可以读作 Maven Daemon,译作 Ma ...
- 项目管理构建工具——Maven(高阶篇)
项目管理构建工具--Maven(高阶篇) 我们在之前的文章中已经基本了解了Maven,但也仅仅只止步于了解 Maven作为我们项目管理构建的常用工具,具备许多功能,在这篇文章中我们来仔细介绍 分模块开 ...
- 前端项目构建工具---Grunt
什么是Grunt? grunt是javascript项目构建工具,在grunt流行之前,前端项目的构建打包大多数使用ant.(ant具体使用 可以google),但ant对于前端而言,存在不友好,执行 ...
- 项目管理及自动构建工具Maven
项目管理及自动构建工具Maven 一.Maven安装.目录结构.cmd命令1.下载安装apache-maven-3.2.3-bin.zip下载:http://maven.apache.org/down ...
- 着重基础之—构建工具—Maven的依赖管理
着重基础之—构建工具—Maven的依赖管理 项目构建利器Maven给我们开发人员带来了极大的便利,从繁琐的jar包管理中脱身的程序员终于可以有时间再进入另一个坑了. 我今天要给大家分享的内容是我在实际 ...
随机推荐
- spring.net事件的注入
.c#代码 TestObject source = new TestObject(); TestEventHandler eventListener1 = new TestEventHandler() ...
- 通过MySql自动同步刷新redis
在服务端开发过程中,一般会使用MySQL等关系型数据库作为最终的存储引擎,Redis其实也可以作为一种键值对型的数据库,但在一些实际场景中,特别是关系型结构并不适合使用Redis直接作为数据库.这俩家 ...
- css中的三种基本定位机制
css中的三种基本定位机制 a.普通文档流 b.定位:相对定位 绝对定位 固定定位 c.浮动 1.普通流中,元素位置由文档顺序和元素性质决定,块级元素从上到下依次排列,框之间的垂直距离由框的垂直mar ...
- javascript总结22: javascript的对象--面向对象编程
1 对象:JavaScript 中的所有事物都是对象:字符串.数值.数组.函数. 对象与程序的关系: 程序 = 基于对象操作的算法 + 以对象为最小单位的数据结构 此外: 面向对象的本质就是让对象有多 ...
- mybatis Mapper.xml和Mapper.java
mybatis Mapper.xml和Mapper.java 通过Mapper.xml和Mapper.java来实现mybatis.环境和入门的一样的.关键:Mapper.xml + Mapper.j ...
- 那些原生的javascript APIs
在前端开发的时候,我们往往会使用javascript 框架,使用框架的好处多多,提供的方便的操作函数,类继承机制,MV*等,让我们能够快速开发,然而我们应该清楚这些框架都是基于浏览器原生api的封装, ...
- vue环境中生成二维码
<template><div><div id='code'></div><canvas id="canvas">< ...
- memcached整理の内存管理及删除机制
内存的碎片化 如果用C语言直接malloc,free来向操作系统申请和释放内存时,在不断申请和释放的过程中,形成了一些很小的内存片段,无法再利用.这种空闲但无法利用内存的现象称为内存的碎片化. sla ...
- RabbitMQ.Bus
一个.netcore下的,十分简单的rabbitmq封装,基于RabbitMQ.Client Nuget https://www.nuget.org/packages/RabbitMQ.Bus/ ht ...
- django drf 深入ModelSerializer
serializer用起来稍微麻烦,可以使用ModelSerializer,类似于django里的Form与ModelForm 1.定义ModelSerializer from rest_framew ...