项目管理工具Maven(基础篇)
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目管理工具Maven(基础篇)相关的知识,希望对你有一定的参考价值。
Maven是项目管理工具,它的主要作用是进行项目构建,提供了标准的,跨平台的自动化项目构建方式,并进行以来管理,即对jar进行统一管理,避免资源版本的冲突。最主要的是maven统一了项目开发结构,对于IDEA和eclipse等不同的集成开发环境都可以使用maven进行统一项目结构。Maven将项目开发和管理过程抽象成一个对象模型(POM)。
maven官网地址:Maven – Welcome to Apache Maven
maven下载地址:Maven – Download Apache Maven
目录
1、Maven下载安装与配置
直接去官网下载即可,有window环境下的版本和linux环境下的版本,直接下载解压就可以了,绿色软件,解压即安装。解压后我们可以看到如下目录,分别为bin文件:核心运行文件,boot文件:类加载文件,conf文件:核心配置文件,lib:相关jar包文件,还有证书之类的。
我们需要对Maven的环境变量进行配置,需要进行如下配置:
java-home的配置和maven配置一样的,在安装jdk已经进行了java-home配置,这里是maven-home的配置,如下:
配置完成后,在命令窗口输入mvn,出现如下窗口即表示配置成功。
2、Maven的基本概念
1)仓库
仓库用于存放jar包,仓库分为本地的和远程的,远程的又分为中央仓库和私服,私服的作用是存放不公开的资源,对内部开放,不共享。
2) 坐标
Maven坐标用于描述仓库中资源的位置,主要包含组织号,项目号,版本号三部分。
3)仓库配置
本地仓库的配置:
在maven的文件夹的conf文件夹内的setting.xml中配置路径, 如下所示:我设置的D盘下的路径为本地仓库位置 ,<localRepository>D:\\maven\\repository</localRepository>
远程仓库的配置:阿里镜像,在setting.xml中配置如下所示:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
3、第一个Maven项目(IEDA生成)
在IEDA创建一个empty project,然后配置maven如下,主要是换成自己配置的maven版本。不配置使用默认的也可以。
当然也需要设置一下项目的sdk,如下:
接下来是创建maven项目,第一次使用IDEA生成,但不使用模板:如下:
打开项目结构,新建module,然后选择maven如下:
起名,就是设置坐标。如下:
然后指定各文件夹的意义:就是将原来灰色的文件夹进行mark
创建maven项目如下:
接下来是再创建一个java的maven项目,这一次使用IDEA中的模板生成,如下:
打开项目结构,新建module,然后选择maven并选择如下的模板:
同样进行标记即可,如下:
下面使用IDEA中的模板创建一个web项目,选择web-app的那个,如下:
对于缺少的文件夹需要自己添加上,然后还是要标记一个各个文件夹的内容信息。
可以在pom.xml文件中配置tomcat插件,如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
然后双击tomcat7下的tomcat:run启动服务器,具体如下:
浏览器打开如下,表示启动服务器成功。
4、依赖管理
依赖分为直接依赖和间接依赖,直接依赖就是在当前项目中通过依赖配置建立关系,间接依赖是从当前项目依赖其它项目的资源。
对于依赖传递可能出现的冲突问题,首先是路径优先,即1度>2度,然后是声明优先,同级的依赖,配置在前的优先。
使用可选依赖可以隐藏自己的依赖,不让其它项目看到。
对于不需要的依赖,使用排除依赖进行排除,即不使用。
依赖范围可以通过scope标签进行设定,常用的依赖范围有四个,complie,test,provided,runtime
另外,依赖的范围是有传递性的,如下表所示:
以上是关于项目管理工具Maven(基础篇)的主要内容,如果未能解决你的问题,请参考以下文章