Maven学习笔记

简介: Maven学习笔记

Maven简介

Maven是什么

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

2fO9QRlCvdxNAD5.png

Maven的作用

  • 项目构建:提供跨平台的自动化项目构建方式。上图中的构建生命周期/阶段和插件。
  • 依赖管理:管理项目依赖的资源,避免资源的版本冲突。上图中的pom.xml→项目对象模型→依赖管理→仓库
  • 统一开发结构:提供标准的、统一的项目结构
  • 普通java项目和javaweb项目的目录结构
  • G4zLI8Y2g95Zi6P.png

Maven的下载与安装

下载地址:Maven官网

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

Maven环境变量配置

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

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

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

Maven基础概念

仓库

Bc4hUayVXQZfEDn.png


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

坐标

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

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

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

仓库配置

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

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

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

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

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

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

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

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

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

<!--复制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工程目录结构

InNyCSXUA9HOQMw.png

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

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

项目有坐标,资源有坐标

Maven项目构建命令

src同层目录下执行

mvn compile #编译
mvn clean   #清理
mvn test    #测试
mvn package #打包
mvn install #安装到本地仓库
  • 执行编译命令,编译完成后会生成target文件夹,里面存放编译生成的文件(.class字节码文件等)
  • 执行清理命令,删除target文件夹
  • 执行测试命令,在target文件夹中生成surefire-reports文件夹,存放测试报告
  • 执行打包命令,在target文件夹中生成项目文件的jar包/war包;打包命令中包含编译和测试命令
  • 执行安装命令,会将项目jar包安装到本地仓库

插件创建工程

创建前文件夹为空目录

创建java工程

mvn archetype:generate 
  -DgroupId={project-packaging} 
  -DartifactId={project-name}
  -DarchetypeArtifactId=maven-archetype-quickstart
  -Dversion=0.0.1-snapshot
  -DinteractiveMode=false

创建web工程

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工程

c8g4h6vpXVtywFl.png

填写项目坐标

yIhQOlX576ZwM8a.png

配置Maven

7Zxg1NKyd698hfc.png

目录结构

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

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

创建Web项目

34xgRBYG2hEoNKS.png

填写项目坐标

ugOJmyi1WBUokP4.png

配置Maven

7gpYwNU1jrahlbM.png

目录结构

可以手动加入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

<!--构建-->
<build>
    <!--设置插件-->
    <plugins>
        <!--具体的插件配置-->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
        </plugin>
    </plugins>
</build>

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


默认启动路径为

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

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

<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插件


依赖管理

依赖配置

依赖范围

生命周期与插件

项目构建生命周期

插件

插件的相关文档


目录
相关文章
|
2月前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
243 81
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
1月前
|
Java Devops 持续交付
Maven学习笔记(二):Maven基础(基于IDEA)
【10月更文挑战第1天】Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。上一篇简单介绍了Maven的基础知识,本文主要介绍IDEA上的实际使用场景。内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。仅供参考。
173 0
Maven学习笔记(二):Maven基础(基于IDEA)
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
3月前
|
Java 测试技术 Maven
Maven学习笔记
这篇文章是关于Maven的学习笔记,包括Maven简介、项目构建工具比较、Maven的四大属性(依赖管理、多模块构件、一致的项目结构、一致的构件模型和插件机制)、Maven的安装和配置、IDEA集成Maven环境,以及Maven项目创建、仓库概念、多模块项目构建、打包操作和依赖概念的详细介绍。
|
3月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
6月前
|
XML Java 大数据
答应粉丝的Maven仓库学习笔记,今天它来了 一起来学习快速入门Maven
答应粉丝的Maven仓库学习笔记,今天它来了 一起来学习快速入门Maven
115 1
|
Java 测试技术 调度
[Java]Maven学习笔记(尚硅谷2022)(四)
[Java]Maven学习笔记(尚硅谷2022)(四)
|
XML Java 应用服务中间件
[Java]Maven学习笔记(尚硅谷2022)(三)
[Java]Maven学习笔记(尚硅谷2022)(三)
|
JavaScript Java Maven
[Java]Maven学习笔记(尚硅谷2022)(二)
[Java]Maven学习笔记(尚硅谷2022)(二)
|
存储 IDE Java
[Java]Maven学习笔记(尚硅谷2022)(一)
[Java]Maven学习笔记(尚硅谷2022)(一)