Maven 基础总结篇

Maven 基础总结篇

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

  • 提供了一套标准化的项目结构:用于解决不同IDE(例如eclipse与IDEA)不同的项目结构的问题

  • 提供了一套标准化的构建流程(编译,测试,打包,发布...) (软件生命周期)

  • 提供了一套依赖管理机制:管理项目所依赖的第三方资源,例如jar包和插件

    • 下载jar包 (项目对象)
    • 赋值jar包到项目
    • 将jar包加入到工作环境
仓库
  • 本地仓库:本地保存jar包的仓库,在下面的链接中,在settings.xml中使用了****来配置本地仓库,优先访问本地仓库,本地仓库没有,再去远程仓库拉取。
  • 远程仓库:Maven的官方仓库: https://repo1.maven.org/maven2/ 用于拉取jar包
    • 远程仓库(私人):由于远程仓库太远了,且有时需要用到自家公司不可公开的jar,所以一般公司需要建立自己的私人远程仓库,在settings.xml中使用了}****来配置远程私人仓库

Maven安装及配置

步骤:下载--->修改配置--->保存

详细步骤: MAVEN的安装与配置教程(超详细版)_maven安装及配置教程-CSDN博客

Maven基本使用
maven 复制代码
# 打开cmd 找到对应的路径
mvn compile   ## 编译
mvn clean     ## 清理
mvn test      ## 测试
mvn package   ## 打包
mvn install   ## 安装
Maven生命周期
  • Mven构建项目生命周期描述的是一次构建过程经历经历了姦少个事件
  • Maven对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等
    • 注意:同一生命周期内,执行后边的命令,前边的所有命令会自动执行
IDEA中配置Maven
  • 选择IDEA中File ->Settings
  • 搜索maven (注意这里是小写)
  • 设置IDEA使用本地安装的Maven,并修改配置文件路径,在Maven home path 中选择对应的Maven,在User settings file 中选择对应的settings.xml文件
Maven坐标详解
  • 什么是坐标?
    • Maven中的坐标是资源的唯一标识
    • 使用坐标来定义项目或引入项目中需要的依赖
  • Maven坐标主要组成
    • groupld:定义当前Maven.项目隶属组织名称(通常是域名反写,例如:com.itheima)
    • artifactld:定义当前Maven.项目名称(通常是模块名称,例如order-service、goods-service)
    • version:定义当前项目版本号
xml 复制代码
<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.46</version>
</dependency>
IDEA 创建Maven项目
  • 创建模块,选择Maven,点击Next
  • 填写模块名称,坐标信息,点击finish,创建完成
  • 编写HelloWorld,并运行
IDEA导入Maven项目
  • 选择右侧Maven面板,点击+号
  • 选中对应项目的pom.xml文件,双击即可
  • 如果没有Maveni面板,选择ViewAppearanceTool Window Bars

推荐插件:maven-helper,方便操作maven的编译等操作

依赖管理
  • 在pom.xml中编写dependencies:标签
  • 在标签中使用引入坐标
  • 定义坐标的groupld,artifactld,version
  • 点击刷新按钮,使坐标生效
pom.xml文件的解释
xml 复制代码
<!--当前顶目的坐标-->
<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>
依赖添加方式
  • 搜索添加

    xml 复制代码
    搜索mysql maven
    选择mysql版本
    选择Maven复制粘贴
    选择刷新,将jar包拉进来
  • 直接添加,直接在groupId中输入需要添加的依赖名称,例如mysql

  • 按下快捷键Alt+insert,弹出Generate框,选择Dependency,搜索所需jar的关键字,点击add.添加jar包成功。

  • 使用坐标导入jar包-自动导入,选择IDEA中File->Settings,在弹出的面板中找到Build Tools,选择Any changes,点击ok即可生效

依赖范围

通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境

xml 复制代码
<----
      scope的默认值是compile
------>
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13</version>
	<scope>test</scope>
</dependency>
依赖范围 编译classpath 测试classpath 运行classpath 例子
compile Y Y Y logback
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动
system Y Y - 存储在本地的jar包
import 引入DependencyManagement 引入DependencyManagement 引入DependencyManagement 引入DependencyManagement

觉得有帮助的朋友,请帮我点赞或收藏,谢谢~

相关推荐
P.H. Infinity29 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天33 分钟前
java的threadlocal为何内存泄漏
java
caridle44 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^1 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋31 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花1 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端1 小时前
第六章 7.0 LinkList
java·开发语言·网络
Wx-bishekaifayuan1 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
全栈开发圈1 小时前
新书速览|Java网络爬虫精解与实践
java·开发语言·爬虫