1.Maven的安装和配置
从Maven的官网上下载Maven的安装包,
http://maven.apache.org/download.html。
将其解压在你想安放的目录下。
而后配置Maven的环境变量(M2_HOME),好比说个人Maven安装在D:\Maven\apache-maven-3.0.3下,那么M2_HOME=D:\Maven\apache-maven-3.0.3。若是想在任何目录下使用maven命令,就将M2_HOME目录下的bin目录加入到加入到系统环境变量Path中。
使用mvn -v 就能够看到当前maven的版本信息,代表安装成功。
注:安装maven前必须肯定本身的电脑已经安装了JDK,而且java环境已经配置好了。
2.设置HTTP代理
有些时候处于安全考虑,本身的主机不能直接访问外网的中央仓库,而是指定一个通过安全认证的代理服务器,经过该代理服务器来访问中央仓库。
如何配置HTTP代理?
首先在安装了Maven后,M2_HOME/conf目录下放置了Maven的配置信息(setting.xml),咱们能够经过修改该文件来设置代理。可是,若是直接在该文件上修改,那么影响将是全局的,并且不利于之后的升级。因此咱们将该文件复制一份,放到~/.m2下,那么该文件将会覆盖M2_HOME/conf下的setting.xml,并且只对当前用户有效。这样每一个用户均可以根据本身的喜爱和需求来配置适合本身的Maven。具体如何在setting.xml中配置HTTP代理,代码入下:
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>...</host>
<port>...</port>
<useranme>...</useranme>
<password>...</password>
<nonProxyHosts>...</nonProxyHosts>
</proxy>
</proxies>
<active>的值为true,表示该代理被激活,<protocol>表示代理协议,固然是http了,<host>表示代理的主机地址,<port>表明代理主机的端口,<useranme>,<password>
用来进行安全认证, <nonProxyHosts>表明哪些主机不须要进行代理。
注:当在作项目使用Maven的时候,一定要下载不少jar包和插件放在本地的仓库中,安装好Mavaen后,本地仓库会有一个默认的存放位置。固然也能够经过配置setting.xml文件来改变。好比我本身的配置,将仓库放在D:/dev/repository下:
<localRepository>D:/dev/repository</localRepository>
3.pom文件编写的一些细节
①在编写pom文件的时候,相同的版本号或其余一些字符串会重复出现,那么咱们能够将重复的字符串抽取出来,进行定义,而后在须要使用的地方进行引用。以下:
<properties>
<springframework.version>2.5.6</springframework.version>
</properties>
.....
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>${springframework.version}</version>
</dependency>
....
4.聊聊Maven的仓库机制
咱们没必要每作一个项目就将其所依赖的jar包和插件都引入到项目中,咱们能够定义依赖,指定在仓库中的位置。仓库包含了不少的插件和jar包,分为本地仓库和远程仓库,当定义一个依赖的时候,系统会首先根据坐标在本地仓库中寻找jar包,若是本地仓库中有所须要的jar包和插件,那么就不会去访问远程仓库,若是没有就会去访问远程仓库,而且把相应的jar包和插件下载到本地仓库中去。
注:安装好Maven之后,若是不执行任何Maven命令,本地仓库目录是不存在的,当用户输入第一条Maven命令以后,Maven才会建立本地仓库。
Maven安装好后,会有一个默认的远程仓库,即中央仓库,配置信息写在Maven的超级POM文件中。固然除了中央仓库,还能够配置其余远程仓库。即当在中央仓库中找不到jar包的时候回去其余远程仓库中寻找。配置代码以下:
<repositories>
<repository>
<id>public</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
在组织内部,有一个Maven仓库服务器,该服务器为每一个项目都提供独立的Maven仓库,为了防止非法的仓库访问,管理员为每一个仓库提供了一组用户名和密码。为了能让Maven访问仓库内容,就须要配置认证信息。配置代码以下:
<server>
<id>releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
仓库的镜像
若是仓库X能够提供仓库Y存储的全部内容,那么就能够认为X是Y的一个镜像。换句话说,任何能够从Y得到的构件,都能从它的镜像中获取。
<mirrors>
<mirror>
<id>mirrorId</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
</mirror>
</mirrors>
上述代码配置了一个中央仓库的镜像仓库mirrorId。其余配置项与一个普通仓库是相同的。
5.生命周期和插件
在有关Maven的平常应用中,命令行的输入每每就对用了生命周期,如mvn package就表示执行生命周期阶段package。
Maven有三套生命周期,clean,default,site.
三套生命周期是相互独立的,用户能够仅仅调用生命周期的某一个阶段,而不会对其余周期产生影响。
每一个生命周期包含一些阶段,而且这些阶段是有顺序的,后面的阶段依赖前面的阶段。以clean生命周期为例,它有三个阶段,pre-clean,clean,post-clean。当用户调用pre-clean的时候,只有pre-clean阶段执行,当用户调用clean的时候,那么就会执行 从命令行执行maven任务的主要方式就是调用maven的生命周期阶段: |