【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

相关推荐
前端世界5 分钟前
float 还是 double?用储罐体积计算带你看懂 C 语言浮点数的真实世界坑
java·c语言·开发语言
豐儀麟阁贵7 分钟前
8.5在方法中抛出异常
java·开发语言·前端·算法
Bro_cat37 分钟前
Java基础
java·开发语言·面试
Mintopia1 小时前
无界微前端:父子应用通信、路由与状态管理最佳实践
架构·前端框架·全栈
一起养小猫1 小时前
《Java数据结构与算法》第三篇(下)队列全解析:从基础概念到高级应用
java·开发语言·数据结构
vx_vxbs661 小时前
【SSM电动车智能充电服务平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·spring cloud·小程序·php·idea
叹隙中驹石中火梦中身1 小时前
解耦神器Event和EventListener
java
Boop_wu1 小时前
[Java EE] 多线程进阶(JUC)(2)
java·jvm·算法
小坏讲微服务1 小时前
SpringCloud整合Scala实现MybatisPlus实现业务增删改查
java·spring·spring cloud·scala·mybatis plus
N***p3651 小时前
五大消息模型介绍(RabbitMQ 详细注释版)
java·rabbitmq·java-rabbitmq