【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

相关推荐
LB21122 小时前
Maven(黑马)
linux·服务器·maven
MyikJ2 小时前
Java求职面试:从Spring到微服务的技术挑战
java·数据库·spring boot·spring cloud·微服务·orm·面试技巧
MyikJ2 小时前
Java 面试实录:从Spring到微服务的技术探讨
java·spring boot·微服务·kafka·spring security·grafana·prometheus
ShiinaMashirol3 小时前
代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )
java·图论
cui_hao_nan3 小时前
Nacos实战——动态 IP 黑名单过滤
java
惜.己3 小时前
MySql(十一)
java·javascript·数据库
AI大模型系统化学习3 小时前
AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁
大数据·人工智能·ai·架构·大模型·ai大模型·大模型学习
stormsha3 小时前
MCP架构全解析:从核心原理到企业级实践
服务器·c++·架构
10000hours3 小时前
【存储基础】NUMA架构
java·开发语言·架构
伍六星4 小时前
动态拼接内容
java·jsp