maven的下载安装与配置
一、maven简介
maven是一个强大的项目构建和管理工具,利用java进行开发,属于Apache下的开源项目,现在的最新版本为Apache Maven 3.5.4,官网为 http://maven.apache.org。maven是跨平台的,并且功能很强大,能够帮助使用者完成从清理,编译,测试,生成报告,打包和部署的一系列操作过程。maven标准化了项目的构建过程,有利于团队之间的协作。此外,maven可以有效的解决java项目中jar包依赖问题,解决由此带来的版本不一致等问题。maven还提供了一个免费的*仓库,几乎可以找到任何开源类库。
二、maven的安装配置
(1)安装配置本地maven
在安装maven之前必须保证计算机已经安装和配置好了jdk环境,目前最新版本的maven要求jdk最低版本1.7,我试过用1.6的执行mvn命令会报错,然后从官网上下载想要安装的maven版本 http://maven.apache.org/download.cgi,这里我安装的maven 3.5.4。然后根据自己的安装路径配置环境变量,具体的新建系统变量M2_HOME,并设置为安装的maven路径,如下图:
最后,在系统变量Path加上 ;%M2_HOME%\bin。之后,在命令行中输入mvn -version 判断是否安装成功,如果出现如下界面证明安装成功。
上述步骤完成后就可以开始使用maven了,但是maven默认将仓库放在用户的临时文件夹下的 .m2/repository下,但是为了方便管理可以通过设置conf 文件 夹 下的setting.xml文件下<localRepository></localRepository>节点来自定义本地仓库内容。我再E盘重新建立本地仓库文件夹E:/nexu/.m2/repository,并设置了setting.xml文件:<localRepository>E:/nexu/.m2/repository</localRepository>。
另外在setting.xml中有一处被注释的标签<mirrors>...</mirrors>这里指定的是远程仓库的镜像,由于maven默认远程仓库在国外,网络不稳定的情况下容易访问失败,所以国内提供了很多镜像地址,我这里使用的是阿里的镜像,比较稳定。
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
注意,用户的临时文件夹下的 .m2/ 也可以放置setting.xml ,此处是专为该用户进行的配置,而安装目录下的setting.xml是全局的,对所有用户生效,如果用户的临时文件夹下的 .m2/setting.xml 不添加任何新的配置的话,会默认执行全局的配置。另外在maven项目中的pom.xml中也是可以配置镜像的,以下是配置的优先级:
配置优先级从高到低:pom.xml--->profiles.xml--->user settings --->global settings
完成了maven的安装配置及自定义本地仓库的位置后,在命令行中输入mvn help:system,可以看到本地maven为我们从*仓库中下载了一些文件到本地仓库中。
(2)eclipse中配置maven
完成(1)中所有操作确定maven安装配置正确后,首先在eclipse->Window->Preferences->Maven->Installations中添加maven,如 下图
然后在eclipse->Window->Preferences->Maven->User Settings中设置本地仓库及对应setting.xml文件位置,具体如下(我拷贝一份了setting.xml文件到本地仓库m2文件夹下,用来说明这是针对该仓库的设置,也可以直接使用maven安装文件下的setting.xml文件):
以上就完成了eclipse配置本地安装的maven环境。
三、maven常用命令
mvn -version 查看maven的版本及配置信息
mvn archetype:create -DgroupId= DartifactId= 构建java项目
mvn archetype:create -DgroupId= DartifactId= -DarchetypeArtifactId=maven-archetype-webapp 创建web项目
mvn compile 编译项目代码
mvn package 打包项目
mvn package -Dmaven.test.skip=true 打包项目时跳过单元测试
mvn test 运行单元测试
mvn clean 清除编译产生的target文件夹内容,可以配合相应命令一起使用,如mvn clean package, mvn clean test
mvn install 打包后将其安装在本地仓库
mvn deploy 打包后将其安装到pom文件中配置的远程仓库
mvn eclipse:eclipse 将maven生成eclipse项目结构
mvn eclipse:clean 清除maven项目中eclipse的项目结构
mvn site 生成站点目录
mvn dependency:list 显示所有已经解析的所有依赖
mvn dependency:tree 以树的结构展示项目中的依赖
mvn dependency:analyze 对项目中的依赖进行分析,依赖未使用,使用单未引入
mvn tomcat:run 启动tomcat
四、maven中的pom.xml
pom文件是maven中最重要的文件,以上命令的也需要根据pom文件进行运行。一般在构建完maven项目后需要修改pom文件添加诸如依赖关系,打包机制及一些项目的详细信息。一般的pom包含如下一些基本的信息:
groupId:项目或者组织的唯一标志
artifactId:项目的名称
version:项目的版本
packaging:打包机制
name:用户描述项目的名称
url:应该是只是写明开发团队的网站
其中groupId,artfactId及version是所有的pom文件必须拥有的。除了这些基本信息外就是pom的依赖,集成,合成关系,插件,构建信息的一些声明,这里不进行详细介绍,下面给出一个简单的pom文件示例如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast.springboot</groupId>
<artifactId>itcast-springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>com.jolbox</groupId>
<artifactId>bonecp-spring</artifactId>
<version>0.8.0.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
上一篇: Maven--继承与聚合