maven介绍

maven是apache组织开发的一款开源的可以管理JavaWeb项目jar包的构建,可以解决jar包之间的冲突;可以对项目进行管理,比如项目打包等,maven使用pom项目对象模型进行构建项目的。

POM介绍

POM(Project Object Model 项目对象模型),是一个maven的核心配置文件(xml格式)。用于描述项目如何构建,声明项目依赖,打包运行的方式等等。它是按面向对象的思想来管理项目的(每个jar包都是一个对象,通过给对象配置不同的属性来解决jar包的使用范围、不同版本冲突等),每个maven工程中都有一个pom.xml配置文件。

maven的作用

项目jar包的构建,项目的管理(项目生命周期的管理),比如:打包,javase项目打jar,javaweb项目打成war包,还有其他功能,如分模块开发,以后有空再写分模块开发这方面的文章.

Maven的仓库

maven有两种仓库类型:

一种是本地仓库,一种是远程仓库,详情看下图.

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven

官方的中央仓库地址:

http://repo1.maven.org/maven2/

第三方阿里云仓库:

http://maven.aliyun.com/nexus/content/groups/public/

Maven的坐标

坐标的作用是可以在pom.xml配置坐标信息,坐标信息用于指向仓库里面具体jar包的位置

坐标具体含义

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_02

groupId

对应仓库里面第一层目录

artifactId

对应仓库里面第二层目录

version

对应仓库里面第三层目录

举个例子,引用junit的jar包使用坐标来描述,这个描述会放到pom.xml文件中


<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11version> <scope>test</scope> </dependency> </dependencies>


idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_03

本地仓库的jar包位置

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_04

需要注意的是:大多数每个坐标的组成都对应的是一层目录,只有groupId特殊,如果groupid描述的信息中有“.”,就会代表多层目录结构

idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_05

Maven的安装与配置

1.下载maven

官方下载地址: https://maven.apache.org   鼠标点击复制

idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_06

2.下载完成解压到目标路径完成安装

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_07

了解下maven服务器的目录结构

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_08

3.解压完成需要配置maven的全局配置文件settings.xml

3.1绑定本地仓库

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_09

<localRepository>F:\repository</localRepository>

3.2绑定远程仓库,阿里云

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_10


<mirror> <id>nexusid> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>


3.3配置全局的jdk编译级别版本(如果不配置,默认编译级别是1.4,太低,idea运行的话会有警告)

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_11

将上面信息配置到如下位置

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_12


<profile> <id>development</id> <activation> <jdk>1.8</jdk> <activeByDefault>true</activeByDefault> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>


idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_13

3.4设置环境变量,到处都可以使用maven的命令

3.5测试是否安装配置成功,命令行出现如下信息代表配置成功

命令:mvn -version

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_14

下面用IDEA绑定本地Maven服务器

绑定本地maven软件

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_15

设置运行参数

-DarchetypeCatalog=internal ,用于设置任何配置信息都从本地缓存中拿。有一些模板信息maven默认从远程仓库下载获取,如果设置了这个参数第一次从远程拿,以后从本地拿(这就要求大家第一次玩maven必须联网,1~5M不等)

-DarchetypeCatalog=internal

配置效果看截图

idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_16

使用Maven骨架向导创建javaweb工程

使用向导骨架创建maven项目

idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_17

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_18

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_19

idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_20

idea use maven wrapper 查看版本 idea怎么看自己的maven库_jar包_21

生成默认的项目目录结构

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_22

maven对JavaWeb项目目录结构的要求是很规范的,需要熟记,不然真的会被大佬嘲笑idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_23

main

主程序目录,会被放到打包war文件中【必须有】

java

主程序java源文件目录

resources

放业务配置文件,最后会放到classes类路径下面

webapp

存储web资源文件,类似以前web工程中web目录

test

测试程序目录,不会放到war文件中【可有可无】

java

测试程序java源文件目录

resources

放测试配置文件

target

输出目录,部署的资源,由maven自动管理自动生成

pom.xml

配置jar包的配置文件【必须有】

src

存放项目代码的根目录

完善当前JavaWeb项目目录结构

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_24

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_25

注意:项目树里面的颜色变化,需要点击maven窗口里面的刷新才会有。

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_26

注意:maven不使用骨架创建JavaWeb项目,不勾选Create from archetype直接点击Next即可;

idea use maven wrapper 查看版本 idea怎么看自己的maven库_maven_27

下面了解一下maven的工具栏以及生命周期:详情可百度,不做详细介绍

idea use maven wrapper 查看版本 idea怎么看自己的maven库_intellij-idea_28