Maven的学习

news/2024/10/22 21:01:29

Maven 安装与配置

今天我们来学习一下Maven,Maven就相当于一个管理的工具,原理就是使用一个插件,这个插件由多个jar包构成。

在一个公司的项目开发过程中,一个大的项目通常被分为好几个小的模块,由不同的人去完成,但是不同的人在开发的过程中,使用的组件,jar包难免会有不同,所以在整合的时候会出现一些版本号不同所导致的一些错误。那么怎么避免这个错误呢?

这就要用到Maven了,Maven在其中的作用就相当于一个中央仓库,每一个开发的人都可以使用Maven中的一些jar包,也可以将自己所完成的jar导入Maven这个中央仓库,在项目开发中这些jar包通常由项目管理人员指定的,这样能最大程度的避免因为版本号不同所导致的错误。

maven概述

一、获取Maven

1、下载Maven

  • 可以直接在浏览器中前往apache的官网进行下载Maven – Welcome to Apache Maven。

Snipaste_2024-10-22_11-29-10

  • 也可以在国内各大镜像源网站上下载,这里我使用的是阿里云Index of apache-local/maven

2、解压Maven压缩包到本地目录

Snipaste_2024-10-22_11-31-31

3、配置D:\soft\apache-maven-3.5.2-bin\apache-maven-3.5.2\conf\settings.xml文件

  • 修改本地仓库地址

Snipaste_2024-10-22_14-01-23

  • 修改镜像源地址

Snipaste_2024-10-22_14-02-33

4、配置环境变量

右击电脑属性,找到高级系统设置,在里面有一个环境变量

image-20241022192916558

在系统环境变量里新建一个MAVEN_HOME,变量名设为解压后的Maven文件根目录

image-20241022193121571

再在系统变量里找到Path变量,在里面加上%MAVEN_HOME%\bin

image-20241022193500032

配置完成后可以打开cmd窗口输入mvn - v查看版本号来验证是否安装成功

image-20241022193819381

到此环境变量就配置好了,Maven也基本下载安装完毕。

二、认识Maven

我们安装完Maven之后可能在想,Maven是什么,有什么功能?

  • Maven翻译成中文就是大师、专家、内行的意思

  • Maven是一款自动化构建工具,专注服务于Java平台的项目构建依赖管理

  • 依赖管理:jar之间的依赖关系,jar包管理问题统称为依赖管理

  • 项目构建:项目构建不等同于创建项目

    ​ 项目构建分成7步,创建项目是一瞬间完成的

    ​ 1、清理

    ​ 2、编译

    ​ 3、测试

    ​ 4、报告

    ​ 5、打包

    ​ 6、安装

    ​ 7、部署

三、Maven与Idea及相关应用

1、首先创建一个Maven项目文件

image-20241022195339458

2、在settings里面搜索Maven,然后在Maven home path里面选择自己下载的版本,并选好settings file 和本地仓库

image-20241022195845042

四、Maven核心

1、pom文件

pom.xml全称:Project Object Model【项目对象模型】,将项目封装为对象模型,便于使用Maven管理【构建】项目

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><!--设置工程坐标 --><parent><groupId>com.shujia</groupId><artifactId>Maven</artifactId><version>1.0</version></parent><artifactId>java</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency></dependencies></project>

2、Maven约定的目录结构

项目名

src【书写java源代码】

main【书写java主程序代码】

java【书写java代码】

resources【书写配置文件代码】

test【书写测试代码】

java【书写测试java代码】

pom.xml【书写配置文件代码】

target【编译后目录结构

3、Maven的生命周期

Maven的生命周期分为3部分

  • Clean 单独作为一个生命周期
  • compile【编译】,test【测试】,package【打包】,install【安装】,deploy【部署】。是构建的核心部分
  • validate,verify,site是第三部分生成项目报告,站点,发布站点。

image-20241022205154280

生命周期不是一步直接执行的,是在三部分里依次执行,就比如我想要执行package,就必须先执行compile,test,再执行package结束,同理我想要执行,install,就必须先执行compile,test,package,再执行install结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74803.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

jdk8中文文档及安卓阅读器

例:下载链接: 文档(密码:76nh) 软件(密码:5wrj) 原文链接: http://466dd.com

7-1计算阶乘和【PTA嵌套循环程序设计】

嵌套循环程序设计 7-1计算阶乘和#include<stdio.h>int f(int a){int sum = 1;for(int i=1;i<=a;i++){sum *= i;}return sum;}//构造N!函数int main(){int N = 0,sum = 0;//初始化scanf("%d",&N);if(N>1){for(int i=1;i<=N;i++){sum += f(i);//实…

从认识 Kubernetes 开始

你也说,我也说,那什么是 K8s 呢?Author: ACatSmiling Since: 2024-10-21认识 Kubernetes 什么是 Kubernetes 官方网站:https://kubernetes.io Kubernetes,是 Google 严格保密十几年的秘密武器 Borg 系统的一个开源版本,于 2014 年 9 月发布第一个版本,2015 年 7 月发布第…

java的三大程序结构

JAVA的三大程序结构 一:顺序结构 程序走上执行到下。 二:选择结构 if单选择结构 if(布尔表达式){ //如果布尔表达式的值为ture则执行{}里的语句块 } public class IfDemo01 {public static void main(String[] args) {//接收键盘输入Scanner scanner = new Scanner(System.…

CSP模拟赛 #42

#40 懒得写了,#41 题目质量过低。A 有 \(n\) 张长度为 \(m\) 的纸条,每张纸条有 \(k_i\) 个位置有小写字母,其他位置透明。你需要合理从上到下排列这些纸条,使得最终在上方看到的字符串为 \(s\),保证对于每个位置,至少一张纸条在该位置有一个字母。给出方案或无解。 \(1\…

markdown转pdf,方法总结

总结使用1. VScode插件Markdown Preview Enhanced。格式是正确的。但是无法批处理和指令处理2. pandoc --pdf-engine=typst。无法导出粗体和斜体需求 markdown格式转为pdf我遇到的: 1. 我现在想把多个八股文文档(GitHub项目里的 scutan90/DeepLearning-500-questions: 深度学…

苦寻多日,终于搞定了地形切片,向大家安利一下这款超简单的免费GIS工具箱

概述 地形切片是将大范围的地形数据分割成小块(切片)进行存储和展示的技术,常用于高效的三维地形可视化和动态加载。在实际操作中,可以通过GISBox等工具进行地形切片处理。今天和大家安利的GISBox 是一个用于GIS模型切片、服务分发的免费GIS工具箱,其中包括了支持地形切片…

历届 CSP 刷题记录

\(\texttt{CSP 2019}\) J 组 \(\texttt{T3}\) 题目传送门 注意到一点:每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪念品也可以当日卖出换回金币。当然,一直持有纪念品也是可以的。 这告诉我们:在一天内,纪念品就是钱,钱就是纪念品,钱和纪念品没有本质区…