Maven

作用

依赖管理

统一项目结构

项目构建

概述

介绍

仓库

用于存储资源,管理各种jar包4

  • 本地仓库

    自己计算机上的一个目录

  • 中央仓库

    有Maven团队维护的全球唯一的。仓库地址:lCentral Repository:

  • 远程仓库(私服)

    一般有公司团队搭建的私有仓库

安装

步骤

1.下载解压apche-maven-3.6.1-bin.zip

链接:百度网盘 请输入提取码 提取码:j3oi

2.配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录

XML 复制代码
<localRepository>E:\develop\apache-maven-3.6.1\mvn_repo</localRepository>

3.配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签

XML 复制代码
<mirror>  
<id>alimaven</id>  
<name>aliyun maven</name>  
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>          
</mirror>

4.配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入path环境变量

5.测试(是否安装成功)

java 复制代码
mvn -v

IDEA集成Maven

配置环境

  • 选择IDEA中File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven

  • 设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库

1.根据自己安装的maven路径对应配置

2.给JRE配置JDK版本

3.编译版本

创建Maven项目

1.创建模块,选择New Project,填写模块名称,坐标信息,点击Create,创建完成

2.编写HelloWorld,并运行

Maven坐标

什么是坐标

  • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置

  • 使用坐标来定义项目或引入项目中需要依赖

坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.demo)

  • artifactId:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)

  • version:定义当前项目版本号

依赖管理

  • 依赖

    指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

  • 配置

    1. 在pom.xml中编写<dependencies>标签

    2. 在<dependenies>标签中使用<dependency>引入坐标

    3. 定义坐标的groupId,artifactId,version

    4. 点击刷新按钮,引入最新加入的坐标

依赖传递

  • 依赖具有传递性

    1. 直接依赖:在当前项目中通过依赖配置建立的依赖关系

    2. 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

  • 排除依赖

    排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope>...</scope>设置其作用

作用范围

  • 主程序范围有效。(main文件夹范围内)

  • 测试程序范围有效 (test文件夹范围内)

  • 是否参与打包运行 (package指令范围内)

XML 复制代码
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</ scope >
</dependency>
scope值 主程序 测试程序 打包(运行) 范例
compile(默认) Y Y Y log4j
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动

生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

Maven中有3套相互独立的生命周期

  • clean:清理工作

  • default:核心工作,如:编译、测试、打包、安装、部署等

  • site:生成报告、发布站点等

在同一套生命周期中,当运行后的阶段时,前面的阶段都会运行

相关推荐
吾日三省吾码43 分钟前
JVM 性能调优
java
弗拉唐2 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi772 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
少说多做3433 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀3 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
蓝黑20203 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深3 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
shuangrenlong3 小时前
slice介绍slice查看器
java·ubuntu
牧竹子3 小时前
对原jar包解压后修改原class文件后重新打包为jar
java·jar