maven安装及配置
1.1 maven的概念
1.2 Maven的作用
1.3 Maven的概念模型
一.
1.下载maven,这里有个绿色版本 直接将绿色maven放到路径不为中文的目录下
2.Maven repository(maven 仓库) 也放到一个路径不为中文的目录下
3.在1maven中,与bin同级的conf 中的 settings.xml 中将2中的仓库路径 配到里面
4.配置环境变量 MAVEN_HOME: 1的路径 ; path: 中配上%MAVEN_HOME%\bin;即可
5.Doss命令 cmd 测试maven是否安装成功。 mvn -version
二.Idea 集成maven
1.idea 中:file --setting --plugins–搜索maven ----将Maven Integration 打上勾,(这里会有俩个maven相关的最好都打上勾) 打上勾后 这时可以在settings 中看到maven
2.选择maven 进行设置 a.maven home directory(maven 所在目录)
b.User settings file(maven所在目录下的conf/settings.xml目录) c.local repository(本地maven 仓库)
三.Idea创建项目
1.创建普通的maven java 项目 和maven web项目
New project—maven
1)cn.itheima//域名的反写
web01//项目的名称
1.0-SNAPSHOT//版本
注意:创建完maven项目之后,要点击跳出来的 auto_import 或者
做下图 1,2 操作
三.Pom.xml文件 。
1.项目中所需要的所有的jar包 ,只需要在pom.xml中 配置上对应的依赖即可
如下:
mysql
mysql-connector-java
5.1.32
c3p0
c3p0
0.9.1.2
commons-dbutils
commons-dbutils
1.5
3.项目中所需要的所有的插件:也只需要在pom.xml中的添加对应的配置
如下:
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--tomcat-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/web02</path>
<port>8848</port>
</configuration>
</plugin>
</plugins>
什么是Maven仓库
在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如 log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永 远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如 SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问题),你需要将大量的jar文件提交到代码库里,可是版本管理工具在处理二 进制文件方面并不出色。
Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖 JAR,这节省了磁盘资源。此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等, 因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使用。
简言之,Maven仓库能帮助我们管理构件(主要是JAR)。
本地仓库 vs. 远程仓库
运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。
比如说,你的项目配置了junit-3.8的依赖,在你运行mvn test 的 时候,Maven需要使用junit-3.8的jar文件,它首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,Maven会检查可用的远程仓 库配置,然后逐个尝试这些远程仓库去下载junit-3.8的jar文件,如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。如果尝 试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。
Maven缺省的本地仓库地址为
u
s
e
r
.
h
o
m
e
/
.
m
2
/
r
e
p
o
s
i
t
o
r
y
。
也
就
是
说
,
一
个
用
户
会
对
应
的
拥
有
一
个
本
地
仓
库
。
你
也
可
以
自
定
义
本
地
仓
库
的
位
置
,
修
改
{user.home}/.m2/repository 。也就是说,一个用户会对应的拥有一个本地仓库。 你也可以自定义本地仓库的位置,修改
user.home/.m2/repository 。也就是说,一个用户会对应的拥有一个本地仓库。你也可以自定义本地仓库的位置,修改{user.home}/.m2/settings.xml :
Xml代码
?
1
2
3
4
5 < settings >
…
< localRepository >D:\java\repository</ localRepository >
…
</ settings >
你还可以在运行时指定本地仓库位置:
mvn clean install -Dmaven.repo.local=/home/juven/myrepo/
还有一点需要理解的是,当我们运行install的时候,Maven实际上是将项目生成的构件安装到了本地仓库,也就是说,只有install了之后,其它项目才能使用此项目生成的构件。
了解了本地仓库,接着了解一下Maven缺省的远程仓库,即Maven中央仓库。
安装好Maven之后,我们可以建立一个简单的项目,配置一些简单的依赖,然后运行mvn clean install,项目就构建好了。我们没有手工的去下载任何jar文件,这一切都是因为Maven中央仓库的存在,当Maven在本地仓库找不到需要的 jar文件时,它会查找远程仓库,而一个原始的Maven安装就自带了一个远程仓库——Maven中央仓库。
这个Maven中央仓库是在哪里定义的呢?在我的机器上,我安装了maven-2.0.10,我可以找到这个文件:${M2_HOME}/lib/maven-2.0.10-uber.jar ,打开该文件,能找到超级POM:\org\apache\maven\project\pom-4.0.0.xml ,它是所有Maven POM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:
Xml代码
1.
?
2.
1
2
3
4
5
6
7
8
9
10
11 < repositories >
< repository >
< id >central</ id >
< name >Maven Repository Switchboard</ name >
< layout >default</ layout >
< url >http://repo1.maven.org/maven2</ url >
< snapshots >
< enabled >false</ enabled >
</ snapshots >
</ repository >
</ repositories >
3.
关于远程仓库的配置,下面的小节我会详细解释,这里我们只要知道,中央仓库的id为central,远程url地址为http://repo1.maven.org/maven2,它关闭了snapshot版本构件下载的支持。
本文介绍Maven的基本概念、安装配置流程,包括环境变量设置和仓库配置。同时,详细讲解如何在IntelliJ IDEA中集成Maven,创建项目,以及Pom.xml文件的配置方法。此外,深入解析Maven仓库的原理,区分本地仓库与远程仓库,并说明如何自定义仓库位置。
693

被折叠的 条评论
为什么被折叠?



