maven的东西使用了一段时间,但是每次使用都多少有点含糊,所以总结一下。
目前主要使用是在jar包的控制上
原理:
在本地,指定一个文件夹,便是maven的仓库,maven会从远程的*仓库中下载你需要的jar资源到你本地,然后通过maven关联,讲jar包依赖到你的项目中,避免了你需要将jar包拷贝到lib中,并通过classpath引入这些jar包的工作。
使用优点:
- 方便添加项目依赖的jar包,比如,你需要使用spring-mvc,那么,你必须引入spring-mvc及其相关的所有jar包到项目中,有时不同版本对依赖的jar包的版本是不同的,所以需要查看jar包的说明去引入对应版本号的jar文件。这看起来似乎太痛苦了。而maven在你引入使用的jar包时,便会为你引入它所依赖的所有jar包,连版本库都不用你考虑了。
- 方便控制jar包的版本,及各个jar包的依赖。比如,你使用spring框架时,开发过程中,可能发现各个版本的不同,而需要修改版本时,拷贝jar包到lib下的方法费时费力,而在maven的pom文件中直接修改版本号 ,maven便会帮你修改项目引用的jar包依赖。
就这两点理由足够你选择maven进行jar包的版本管理了。当然,maven还可以将你的项目工程编译成jar包放入到版本库中,供别的项目依赖。其他功能,我还没有使用到,以后用到再进行添加。
安装使用:
下载maven,存放在固定文件夹下,并配置环境变量:%M2_HOME%\bin
cmd进入控制台,mvn -version,查看是否配置成功。
默认情况下,maven的配置信息有两种级别:用户级别、全局级别
1.用户级别:只为某一个用户而设置,通常在${user.home}/.m2/settings.xml中进行设置。maven安装后,该文件夹中并没有这个xml文件,maven只是使用了默认配置,可以去maven的apache-maven-3.2.3\conf文件夹下,拷贝settings.xml文件到上述文件夹中,并修改相应的配置信息。
2.全局级别:用来为该机器上的所有用户进行设置,假设他们都使用同样的maven安装程序。通常在${maven.home}/conf/settings.xml中进行设置。
这里需要了解maven何时并且如何使用这两个配置文件进行工作:???????????????????????????????????????
配置内容:目前只需要配置本地仓库。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--配置本地仓库所在目录-->
<localRepository>D:\install\other\apache-maven-3.2.3\repository</localRepository>
</settings>
这样就把远程仓库放在了D:\install\other\apache-maven-3.2.3\repository下了。
myeclipse结合maven使用:
myeclipse需要指定maven在你本机上的安装目录、你需要使用的配置文件的绝对路径。进入windows->preference,
在installations选项卡下,选择maven的安装路径。
在user settings选项卡下,选择配置文件的路径,你可以指定用户级配置文件,也可以指定全局级配置文件。
myeclipse创建maven项目,添加项目依赖:
最新的myeclipse多少有些bug,比如2013里debug时变量值、表达式值无法进行查看,等等问题的存在,工作过程中,我选择myeclipse10进行开发,使用myeclipse创建web project并添加maven依赖,这样创建的项目便可以使用maven进行jar包的版本控制了。如下图所示:
然后根据项目名称及公司名称,命名版本库及版本号。
这样就新建了maven项目。
项目结构如下:
在pom.xml中添加依赖的jar即可。
添加时,如果发现本地仓库没有相应jar包:
一、rebuild index本地仓库,这样会迫使maven从*仓库中把jar包下载到本地仓库中
使用myeclipse的maven repository来reindex仓库
在本地仓库上右键:rebuild index
二、在preference中的maven选项卡下,user settings中,update usersettings选项,这样可以迫使maven去*仓库下载相应的jar文件到本地
从外部引入的项目:
从外部引入的项目,会发现本地仓库有些jar包并不存在。此时在项目上,右键,
可能会发现此时并未将jar包添加到本地仓库中,但是你到jar包在本地仓库中的相应位置上可以看到,pom文件和sha1文件,说明已经讲jar包 的描述放到该仓库中,此时需要在maven repository窗口中,rebuild index,还可以在windows->preference下右键然后在maven的选项卡下update usersettings,也会从远程*仓库中下载jar包到本地。这样就可以构建项目了。