返回

Maven学习笔记

Maven简介

Maven是什么

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(Project Object Model,POM)。

Maven的作用

  • 项目构建:提供跨平台的自动化项目构建方式。上图中的构建生命周期/阶段和插件。

  • 依赖管理:管理项目依赖的资源,避免资源的版本冲突。上图中的pom.xml→项目对象模型→依赖管理→仓库

  • 统一开发结构:提供标准的、统一的项目结构

    • 普通java项目和javaweb项目的目录结构

Maven的下载与安装

下载地址:Maven官网

Maven属于绿色版软件,下载后解压即安装成功

Maven环境变量配置

  • 依赖Java,需要配置JAVA_HOME
  • 设置Maven自身的运行环境,需要配置MAVEN_HOME

在系统变量中配置MAVEN_HOME,值为解压目录,然后在Path中配置%MAVEN_HOME%\bin

cmd中输入mvn命令能够识别,环境变量配置成功

Maven基础概念

仓库

私服可以是中央仓库的镜像,解决中央仓库访问慢的问题,也可以存储自己的私有资源,解决版权问题

坐标

  • Maven中的坐标用于描述仓库中jar包的位置
  • Maven坐标组成
    • groupId:定义Maven项目隶属组织名称(通常是域名反写,例如:org.mybaatis)
    • artifactId:定义Maven项目名称(通常是模块名称,例如:CRM、SMS)
    • version:定义项目版本号
  • packaging:定义项目的打包方式(jar/war)

图中Maven框中即为junit的jar包坐标

  • maven坐标的作用:唯一的定位jar资源位置,由maven工具自动完成识别和下载

仓库配置

本地仓库配置(资源下到哪)

本地仓库默认位置在C盘用户目录下,可以修改为任意位置。

1
Default: ${user.home}/.m2/repository

这里,我在maven安装目录下新建一个respository文件夹,在maven安装目录\conf\settings.xml中修改本地仓库位置为新建的respository文件夹

1
2
<!--复制第53行到第55行写下修改后的仓库位置-->
<localRepository>D:\Tools\apache-maven-3.6.3\respository</localRepository>

此后maven下载的jar包都会下载到修改后的本地仓库地址

远程仓库配置(资源从哪来)

远程中央仓库默认地址为国外服务器,可以设置国内镜像源,当需要访问中央仓库下载资源时,到设置的国内镜像源地址下载

maven安装目录\conf\settings.xml中设置镜像源。这里,我设置镜像资源为阿里云。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<!--复制152行~157行到159行写下镜像源配置-->
<mirror>
      <!--镜像的唯一标识符,用来区分不同的mirror元素-->
      <id>aliyun</id>
      <!--对哪种仓库进行镜像-->
      <mirrorOf>central</mirrorOf>
      <!--镜像名称-->
      <name>aliyun</name>
      <!--镜像URL-->
      <url>https://maven.aliyun.com/repository/central</url>
</mirror>

仓库服务 (aliyun.com)

第一个Maven项目(手工制作)

Maven工程目录结构

java中写java源程序resources中写配置文件

src同层目录下创建pom.xml文件

项目有坐标,资源有坐标

Maven项目构建命令

src同层目录下执行

1
2
3
4
5
mvn compile #编译
mvn clean   #清理
mvn test    #测试
mvn package #打包
mvn install #安装到本地仓库
  • 执行编译命令,编译完成后会生成target文件夹,里面存放编译生成的文件(.class字节码文件等)

  • 执行清理命令,删除target文件夹

  • 执行测试命令,在target文件夹中生成surefire-reports文件夹,存放测试报告

  • 执行打包命令,在target文件夹中生成项目文件的jar包/war包;打包命令中包含编译和测试命令

  • 执行安装命令,会将项目jar包安装到本地仓库

插件创建工程

创建前文件夹为空目录

创建java工程

1
2
3
4
5
6
mvn archetype:generate 
	-DgroupId={project-packaging} 
	-DartifactId={project-name}
	-DarchetypeArtifactId=maven-archetype-quickstart
	-Dversion=0.0.1-snapshot
	-DinteractiveMode=false

创建web工程

1
2
3
4
5
6
mvn archetype:generate 
	-DgroupId={project-packaging} 
	-DartifactId={project-name}
	-DarchetypeArtifactId=maven-archetype-webapp
	-Dversion=0.0.1-snapshot
	-DinteractiveMode=false

第一个Maven项目(IDEA生成)

创建Java项目

打开IDEA,选择new project,创建Maven管理的java工程

填写项目坐标

配置Maven

目录结构

可以手动加入resources文件夹后,右键文件夹选择Mark Directory as

这里我点击new directory后,IDEA就已经可以选择创建resources文件夹了,IDEA还是比较智能滴~

创建Web项目

填写项目坐标

配置Maven

目录结构

可以手动加入testmain\java文件夹后,右键文件夹选择Mark Directory as

这里我点击new directory后,IDEA就已经可以选择创建test\javatest\resourcesmain\java文件夹了

添加后的目录结构

Tomcat插件安装

删除web.xml中暂时用不到的内容

删除后的web.xml

删除pom.xml中暂时用不到的内容

删除后的pom.xml

安装Tomcat插件

maven坐标库中搜索tomcat的坐标

复制中间三行到pom.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<!--构建-->
<build>
    <!--设置插件-->
    <plugins>
        <!--具体的插件配置-->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
        </plugin>
    </plugins>
</build>

在IDEA右侧栏Maven处,可以快速启动tomcat

默认启动路径为

1
http://localhost:8080/项目名/

可以在pom.xml中修改端口号和虚拟路径

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>80</port>
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
</build>

建议通过在右上角add configuration处配置运行环境来启动Tomcat插件

依赖管理

依赖配置

依赖范围

生命周期与插件

项目构建生命周期

插件

插件的相关文档

Built with Hugo
Theme Stack designed by Jimmy