当前位置: 首页 > news >正文

Maven概述,搭建,使用

一.Maven概述

Maven是Apache软件基金会的一个开源项目,是一个有优秀的项目构建(创建)工具,它用来帮助开发者管理项目中的jar,以及jar之间的依赖关系,完成项目的编译,测试,打包和发布等工作.

我在当前学习阶段遇到过的jar文件:

MySQL官方提供的JDBC驱动文件,通常命名为mysql-connecttor-java-.....jar,用于连接和操作MySQL数据库.
MyBatis核心库文件mybtis-.....jar,提供了ORM框架的核心功能.

在使用这些jar包时遇到的问题: 

随着学习的深入,项目中用到的jar文件越来越多,管理这些jar就很麻烦,我们现在项目中用到的jar包都是从各自的官方去下载,很麻烦

引入Maven

Maven官方把常用的jar包都收集管理起来,每一个在服务器端都存在一个唯一的地址,我们只需要知道jar在maven官方仓库的地址即可,就可以把文件用过的maven下载到我们的项目中.

Maven中的概念 

Maven 管理的项目的根目录下都有一个pom.xml文件.

pom.xml文件指示Maven如何工作.

在pom.xml文件中配置项目基本信息以及项目构建信息等.比如:项目坐标,项目依赖的jar,插件,编译选项等.

一旦在pom.xml文件中配置了所依赖的jar,Maven会从构建仓库中下载相应的构件.

在项目中的pom.xml文中配置jar的地址(类似于vuecli项目中的package.json文件中的各种依赖),且可以自动下载.

坐标

Maven 给每个jar定义了唯一的标志,这个在Maven 中叫做项目的坐标,通过这个
坐标可以找到你需要 用到的任何版本的jar包.


groupId、artifactId、packaging、version 的组合被称为项目的坐标,它们形成了 项目的唯一标识,Maven 通过坐标来精确定位构件。其中 groupId,artifactId,version 是必须的,且这三项的值必须唯一,packaging是可选的(默认为 jar).

坐标是jar文件在maven仓库中唯一的地址,由四个部分组成由groupId、artifactId、packaging、version构成.

仓库

仓库是指管理jar文件的仓库

仓库可以分为:maven官方中央仓库(在国外,下载慢,只有一个)
                       全球各地的中央仓库镜像(在各个国家,下载快,多个)
                       本地仓库:第一次使用jar时,会从远程仓库下载,存放在自己电脑上,以后使用.

中央仓库全球共享,先将jar从中央仓库下载到本地仓库,然后在项目中引用本地仓库的jar.

下图是仓库之前的关系:


 

本地仓库中的jar文件可以通过中央仓库或中央仓库镜像两种途径下载

二.Maven开发环境搭建 

1.前提

我们需要安装jdk,并在电脑系统高级系统中新建系统变量

注意:    新建的系统变量名一定要为JAVA_HOME,路径为jdk的根目录.

Maven 工作时需要通过网络下载各种插件以完成任务,因此需要保证网络的通畅 

2.下载Maven服务器

Maven官网:http://maven.apache.org

在Maven官网下载Maven服务器

3.安装,配置Maven

点击下载二进制的apache-maven-3.8.8-bin.zip进行下载.

在系统环境中配置环境变量,在path中配置到bin目录

注意 :   要选择所安装maven服务器的bin目录

配置成功后在命令行输入命令(该命令有一个空格)mvn -version查看版本如下图

出现此文本,表示maven环境配置成功 

配置本地仓库地址

接下来我们根据情况再本地磁盘中建立通过Maven 下载后的文件夹,一般我们称为"仓库(repository)".

在这里我创建的文件是localRepository,作为本地仓库

我们如何将下载的jar文件储存到我们指定的仓库中呢?

需要在Maven的服务器解压的文件中找到conf文件夹下的setting.xml文件进行修改,如下图所示

这里我创建了一个副本文件,以防我们在设置过程中出错

配置1:指定本地仓库地址

修改后:

配置2:配置阿里云Maven 镜像仓库,下载速度更快
<mirror>
<id>aliMaven</id>
<name>aliyun Maven</name>
<url>http://Maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

修改后: 

4.在idea中设置Maven

在idea中任意一个项目中设置

点击idea左上角File

5.创建Maven工程

项目目录的结构 

三.pom.xml配置

pom.xml文件的基本结构

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--模型版本4.0--><groupId>org.example</groupId><artifactId>mavenPro</artifactId><!--项目名称--><version>1.0-SNAPSHOT</version><!--编译信息--><properties><!--指定jdk的版本--><maven.compiler.source>8</maven.compiler.source><!--编译时支持的jdk版本为jdk8--><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--支持的编码集--></properties><!--配置项目中依赖的jar的坐标(jar的地址),jar文件地址在maven官网中寻找--><dependencies><!--mysql  jar的坐标--><dependency><groupId>mysql</groupId><!--第一级目录--><artifactId>mysql-connector-java</artifactId><!--第二级目录--><!--<type>jar</type> 包类型(文件类型)默认是jar--><version>8.0.16</version><!--第三级目录  版本号--></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency></dependencies></project>

1.项目基本信息

<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>mavendemo</artifactId>
<version>1.0-SNAPSHOT</version>

2.指定编译时使用的jdk版本

<properties><!--指定jdk的版本--><maven.compiler.source>8</maven.compiler.source><!--编译时支持的jdk版本为jdk8--><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--支持的编码集--></properties>

3.依赖信息 

Maven仓库官网(http://mvnrepository.com/)如下图所示

在此官网就可以下载自己所需开发jar包, 继续点击链接

这里演示下载mysql-jar包

在pom.xml文件的<dependencies></dependencies>标签中粘贴代码

安装多个jar包示例:

点击右侧M按钮,Dependencies目录中显示已下载的jar包 

下载的jar包存储在电脑硬盘中的本地仓库文件中 

四.Maven命令

  1. clean 清除之前所编译的内容
  2. compile 编译(通过maven将java文件编译为class文件) 
  3. package 打包项目(打包为jar)
  4. test 运行test包下面的内容

相关文章:

  • 第五篇:HTTPS 与 TLS/SSL 握手原理
  • 前端面经 两栏布局
  • 逆向入门(1)
  • DFS每日刷题
  • Mac电脑上本地安装 redis并配置开启自启完整流程
  • pikachu通关教程-CSRF
  • 使用langchain实现五种分块策略:语义分块、父文档分块、递归分块、特殊格式、固定长度分块
  • 【论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合】
  • 一天搞懂深度学习--李宏毅教程笔记
  • 财管8-企业价值评估
  • 【位运算】两整数之和(medium)
  • 过滤攻击-聚合数据
  • Spring Boot 全局配置文件优先级
  • “人单酬“理念:财税行业的自我驱动革命
  • CCPC dongbei 2025 F
  • 神经网络-Day42
  • 针对 Harmony-Cordova 性能优化,涵盖原生插件开发、线程管理和资源加载等关键场景
  • Codeforces Round 1028 (Div. 2)(ABC)
  • MMRL: Multi-Modal Representation Learning for Vision-Language Models(多模态表示学习)
  • 【MFC】初识MFC
  • 广阳网站制作/友情链接可以随便找链接加吗
  • 成品网站w灬 源码1688三叶草/百度引流推广怎么收费
  • 厦门做网站优化的公司/项目推广平台排行榜
  • 动态ip做网站影响seo吗/网站关键词优化办法
  • wordpress栏目更改无法显示/杭州百度seo
  • 法院建设门户网站情况/爱站网官网