【Java架构-包管理工具】-Maven基础(一)

本文摘要

Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven概念、模型、安装配置、基本命令


文章目录

  • 本文摘要
  • 1. 什么是Maven
    • 1.1 项目构建
  • 2. Maven模型
  • 3. Maven安装及配置
    • 3.1 下载
    • 3.2 安装目录
    • 3.3 环境变量配置
  • 4. Maven目录结构
  • 5. Maven命令
  • 6. 本地仓库配置
  • 7. Idea整合Maven


1. 什么是Maven


  Maven是跨平台的项目管理工具,主要服务于Java平台的项目构建和依赖管理

1.1 项目构建

项目构建:编写源代码->编译->测试->运行->打包->部署

  • 传统项目
    a. 编写源码、编译、测试、运行、打包、部署
  • Maven项目
    a. maven将项目构建进行标准化,每个阶段都可以使用命令来完成
    b. maven后一个阶段都包含前一阶段命令
    c. 清理、编译、测试、报告、打包、部署在这里插入图片描述

2. Maven模型

  • pom文件是maven唯一的核心文件,里边包含了依赖管理、插件管理
  • 依赖、插件都是以jar包的形式进行管理
  • 当执行插件命令时,实际会去仓库查找对应的jar包运行,如果本地仓库中没有插件对应的jar包,则会从中央仓库拉取jar包
    【Java架构-包管理工具】-Maven基础(一)_第1张图片

3. Maven安装及配置

3.1 下载

https://archive.apache.org/dist/maven/maven-3/

3.2 安装目录

【Java架构-包管理工具】-Maven基础(一)_第2张图片

  • bin:含有mvn运行的脚本
  • boot:含有plexus-classworlds类加载器框架
  • conf:含有settings.xml配置文件
  • lib:含有Maven运行时所需要的java类库
  • LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

3.3 环境变量配置

配置MAVEN_OPTS运行环境变量大小:-Xms128m -Xmx512m
【Java架构-包管理工具】-Maven基础(一)_第3张图片【Java架构-包管理工具】-Maven基础(一)_第4张图片【Java架构-包管理工具】-Maven基础(一)_第5张图片

4. Maven目录结构

  • src/main/java :存放项目的.java文件
  • src/main/resources :存放项目资源文件,如spring, mybatis配置文件
  • src/test/java :存放所有测试.java文件,如JUnit测试类
  • src/test/resources :测试资源文件
  • target :项目打包后jar包输出位置
  • pom.xml :配置文件
    【Java架构-包管理工具】-Maven基础(一)_第6张图片

5. Maven命令

  • clean:清除target中生成的jar包
  • compile:编译
  • test:测试
  • package:打包,会生成target目录
  • install:将当前项目打包成jar包并安装至本地仓库供其它项目使用

6. 本地仓库配置

【Java架构-包管理工具】-Maven基础(一)_第7张图片
在这里插入图片描述
在这里插入图片描述

7. Idea整合Maven

  • idea整合Maven时,可以直接使用idea自带的maven版本,也可以使用自己下载的maven版本
  • 选择setting.xml文件,用户可以根据项目不同而配置不同的setting.xml
  • 本地仓库地址,默认会读取setting.xml文件中配置的地址,用户也可以自定义地址

【Java架构-包管理工具】-Maven基础(一)_第8张图片
【Java架构-包管理工具】-Maven基础(一)_第9张图片
【Java架构-包管理工具】-Maven基础(一)_第10张图片

如果创建web项目速度非常慢,并且在Generating project in Batch mode卡住,则进行全局设置如下:-DarchetypeCatalog=local

【Java架构-包管理工具】-Maven基础(一)_第11张图片

你可能感兴趣的:(Java架构,java,架构,maven)