mac系统下的Maven安装配置及创建你的第一个Maven项目

title: mac系统下的Maven安装配置及创建你的第一个Maven项目
tags: maven
categories: maven


若图片无法显示,请前往我的博客查看,相应文章链接:http://codingxiaxw.cn/2016/11/24/51-first-maven-project/

我是在学完SSM框架的整合与基本开发后接触的Maven,它是一个项目管理的利器,网上也有说java后台的项目管理肯定要用到maven的。为什么要用maven?在之前学习各个框架的时候,比如用Spring框架进行开发的时候要在项目中加入Spring的各个jar包及其依赖包;用MyBatis进行开发的时候要在项目中引入MyBatis的各个jar包。这样是不是太过于繁琐?而有了maven对项目进行管理,就简单多了。为什么简单多了?有了maven,这样当我们的项目需要哪个jar包时就可以直接在maven为我们生成的pom.xml文件中添加相关jar包依赖就行,而不需要导入那么多的jar包(可以看看我的这篇文章,用用Maven+SSM框架写一个秒杀系统教程,告诉你maven是如何进行项目管理的),而本篇文章只是教大家如何安装Maven及如何快速入门创建一个Maven项目。

写在前面的话:此篇文章教程是在IntelliJ IDEA中搭建的maven项目。(建议eclipse党快点转IDEA吧,IDEA大法好。逃...

1.maven的安装

前往Apache Maven官网点击apache-maven-3.3.9-bin.zip链接下载3.3.9的版本即可。下载后我将该目录放到/Users/codingBoy/的目录下,文件名为apache-maven-3.3.9。这样我们便成功安装好maven管理工具,但这还不够,还需要设置maven环境变量。

2.配置maven环境变量

打开终端,退到根目录/Users/codingBoy/,输入命令:$ vi ~/.bash_profile打开bash_profile文件,然后添加如下两行代码:

export M2_HOME=/Users/robbie/apache-maven-3.3.9
export PATH=$PATH:$M2_HOME/bin

然后继续退回到根目录,输入$ source ~/.bash_profile使bash_profile文件添加的内容即刻生效。

接下来在终端输入mvn -v,若出现如下内容,说明你的maven管理工具成功安装并成功配置:[图片上传失败...(image-1ef42b-1526380861601)]

到此,Maven在mac系统下的安装和配置即完成。接下来讲解用maven进行项目管理的一些基础知识。

3.创建第一个maven项目

创建maven项目有两种方式,第一种是用命令行输入代码、运行即可生成;第二种是直接用IDEA创建web项目时选择创建maven的web项目即可(IDEA相比eclipse的第一个优点在此就显露:IDEA已经集成maven插件,所以我们可以直接在IDEA中创建maven项目;而eclipse中我们还要进行下载maven插件等一系列操作,简直不能再繁琐。)。 这里我们先介绍第一种在终端输入命令的方式创建maven项目。

3.1使用命令行创建Maven项目

在终端的根目录下输入如下命令:

mvn archetype:generate -DgroupId=cn.codingxiaxw.helloword -DartifactId=helloworld -Dpackage=cn.codingxiaxw.helloword -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart

命令解释如下:

  • mvn:表示使用的是maven命令。
  • archetype:generate:表示使用generate这个插件为我们的maven项目自动生成一个maven骨架,即我们项目的工程结构(如下图)。后边跟的是该插件为我们创建工程结构所需要的一连串的参数。
  • -DgroupId:标识项目的坐标元素之一,与DartifactId,Dpackaging,Dversion组成我们maven项目的坐标,四者唯一确定一个项目。它的值为我们的项目包名,我这里的格式用的我的博客网站后缀+我的用户名+项目名组成。
  • -DartifactId:标识项目的坐标元素之一,它的值为我们的项目名。我这里指定我要生成的项目名为helloword。
  • -Dpackage:标识项目的坐标元素之一,这里值就跟DgroupId的值保持一致即可。此属性在命令行中可选。
  • -Dversion:指定版本号。此属性在命令行中可选
  • -DarchetypeArtifactId:表示我们生成的工程结构为哪一种,这里的属性值为maven-archetype-quickstart表示生成工程目录结构为quickstart的结构。其值还可以为maven-archetype-webapp表示生成的工程目录结构为webapp的结构。

运行该命令,可看到终端中使用的maven命令自动为我们在下载maven的各个依赖包,执行命令的过程时间可能比较久,完成时间取决于个人网络状况。

完成后我们可以在自己的根目录下发现一个名为"helloword"项目名,说明我们成功在终端使用maven命令创建出一个maven项目,打开该helloword项目,会发现我们生成的maven项目的目录布局为这样的:

helloword
   |-src
   |---main
   |-----java
   |-------cn
   |---------codingxiaxw   
   |-----------App.java
   |---test|-----java
   |-------cn
   |---------codingxiaxw
   |-----------AppTest.java
   |-pom.xml

没错,这就是我们通过命令行自动我们生成的maven项目的骨架,在maven项目的开发中,所有的源代码放在文件夹 /src/main/java/下, 所有的单元测试代码放入 /src/test/java/。可以参考官方网站的Maven标准目录 附加的一个标准的pom.xml被生成。这个POM文件类似于Ant的build.xml文件,它描述了整个项目的信息,一切从目录结构、项目的插件、项目依赖、如何构建这个项目等,关于pom的介绍我会在下文中进行讲解,你也可以参考官方网站的POM官方指南

然后我们便可以打开IDEA-Import Project操作导入helloword包下pom.xml一路next即可打开该maven项目。

这样我们便使用第一种使用maven命令行的方式创建了我们的maven项目。

3.2使用IDEA创建Maven项目

而第二种方式更加简单,只需打开IDEA-New Project,出现如下窗口:
[图片上传失败...(image-48a6ad-1526380861601)]

选择左边的maven项目,然后点击右边框框中的任意一种模版(根据选择的模版生成我们的项目工程目录结构,选择上面讲的webapp和quickstart都可,但是二者创建的目录结构是有差别的,我们先选择创建quickstart样式的模版,然后选择创建webapp样式的模版,对比一下二者的目录结构区别)即可next到这一步:[图片上传失败...(image-364a6e-1526380861601)]

填写我们的项目名和包名然后next到这一步:

[图片上传失败...(image-50885c-1526380861601)]

然后继续填写我们的项目名后,点击finish完成创建,这样我们便通过第二种方式直接用IDEA创建了我们的maven项目。创建的项目工程结构如图:

<img src="http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-24%20%E4%B8%8B%E5%8D%885.58.13.png" width="50%" height="50%"/>

发现App.java和AppTest.java图标显示不对,因为它为我们自动生成的pop.xml文件中添加了依赖但是没有自动引入jar包,需要我们点击右下角(也许你的出现在左上角?)的Enable Auto-Import:

[图片上传失败...(image-20eeaf-1526380861601)]

然后我们的工程才算彻底搭建好,如下:

<img src="http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-24%20%E4%B8%8B%E5%8D%886.01.54.png" width="50%" height="50%"/>

如上是采用的生成工程目录的模版是quickstart的,接下来演示创建模版是webapp的,而往往我们的JavaWeb采用的工程模版就是通过webapp生成的,接下来演示通过webapp创建的maven项目,还是打开IDEA-->New Project,出现如下界面:

[图片上传失败...(image-202b79-1526380861601)]

然后next和上述quickstart的步骤一样,一直到finish,我们创建的maven项目工程结构如下:

<img src="http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-24%20%E4%B8%8B%E5%8D%8811.41.09.png" width="50%" />

和上述quickstart创建的模版区别一看便知,为了让此maven项目符合官网上规定的标准工程结构,所以在IDEA中打开项目配置,添加项目没有包如在src包下添加test包,在test包下添加java包和resources包,在main包下添加java包然后点击apply即可,如下图:
[图片上传失败...(image-24f274-1526380861601)]

到此我们便完成了第一个maven项目的创建,接下来我要进行Maven核心知识的讲解,见下篇文章Maven核心知识(待更新)

2018.3.19更

欢迎加入我的Java交流1群:659957958。群里目前已有1800人,每天都非常活跃,但为了筛选掉那些不怀好意的朋友进来搞破坏,所以目前入群方式已改成了付费方式,你只需要支付9块钱,即可获取到群文件中的所有干货以及群里面各位前辈们的疑惑解答;为了鼓励良好风气的发展,让每个新人提出的问题都得到解决,所以我将得到的入群收费收入都以红包的形式发放到那些主动给新手们解决疑惑的朋友手中。在这里,我们除了谈技术,还谈生活、谈理想;在这里,我们为你的学习方向指明方向,为你以后的求职道路提供指路明灯;在这里,我们把所有好用的干货都与你分享。还在等什么,快加入我们吧!

2018.4.21更:如果群1已满或者无法加入,请加Java学习交流2群:305335626 。群2作为群1的附属群,除了日常的技术交流、资料分享、学习方向指明外,还会在每年互联网的秋春招时节在群内发布大量的互联网内推方式,话不多说,快上车吧!

4.联系

If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容