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

本文摘要

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


文章目录

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

1. 什么是Maven

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

1.1 项目构建

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

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

2. Maven模型

  • pom文件是maven唯一的核心文件,里边包含了依赖管理、插件管理
  • 依赖、插件都是以jar包的形式进行管理
  • 当执行插件命令时,实际会去仓库查找对应的jar包运行,如果本地仓库中没有插件对应的jar包,则会从中央仓库拉取jar包

3. Maven安装及配置

3.1 下载

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

3.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

4. Maven目录结构

  • src/main/java :存放项目的.java文件
  • src/main/resources :存放项目资源文件,如spring, mybatis配置文件
  • src/test/java :存放所有测试.java文件,如JUnit测试类
  • src/test/resources :测试资源文件
  • target :项目打包后jar包输出位置
  • pom.xml :配置文件

5. Maven命令

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

6. 本地仓库配置



7. Idea整合Maven

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



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

相关推荐
誰能久伴不乏1 小时前
桌面客户端的运行日志系统:SQLite 分块 + 独立写线程 + 文本降级
数据库·c++·qt·架构·sqlite
未来之窗软件服务7 小时前
终端优先同步架构终端场景下轻量化、高可用通信模型-东方仙盟
架构·东方仙盟·阿雪技术观·网络震荡·dns污染·数据中继器·边界网关
晨曦中的暮雨8 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
文丑颜不良啊9 小时前
LeetCode876~900题目解析
java·leetcode
aloha_78910 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观11 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅11 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog11 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
SL_staff11 小时前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践
java·开源·全栈
FinelyYang13 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能