【Maven】你好,Maven >>> 与Maven的初次见面~

news2024/10/5 14:18:50

在这里插入图片描述

个人主页:.29.的博客
学习社区:进去逛一逛~
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的道路上摸爬滚打,记录学习的过程~

在这里插入图片描述

与Maven的初次见面~

  • 一、了解Maven
  • 二、Maven的构建与依赖
    • ⚪构建
    • ⚪依赖
  • 三、Maven的功能与特性


一、了解Maven

Apache Maven是一个软件项目管理和综合工具,是 Apache 下的一个纯 Java 开发的开源项目,基于项目对象模型(POM)的概念,Maven可以从一个中心信息块管理项目的构建、报告和文档等操作。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。


二、Maven的构建与依赖

Maven能够帮助我们完成地事情如下:

  • 构建
  • 文档生成
  • 报告
  • 依赖
  • SCMs
  • 发布
  • 分发
  • 邮件列表

上述功能中,我们具体去了解一下 构建依赖

⚪构建

构建过程包含的主要环节有:

  • 清理:删除上一次构建的结果,从而准备下一次的构建。

  • 编译:Java源程序编译成 *. class字节码文件。

  • 测试:运行提前准备好的测试程序。

  • 报告:针对刚才测试的结果生成一个全面的信息。

  • 打包:
            - Java工程: jar包。
            - Web工程: war包。

  • 安装:把一个Maven工程经过打包操作生成的 jar包或 war包存入Maven仓库。

  • 部署:
            - 部署 jar包:把 jar包部署到Nexus私服服务器上。
            - 部署 war包:借助相关的Maven插件,将 war包部署到Tomcat服务器上。


⚪依赖

概念
如果工程A中使用到了工程B中的类、接口配置文件等资源,那么我们就可以说A依赖B,简单来讲就是jar包与jar包之间的相互依赖。

依赖管理中需要完成的事情

  • jar 包的下载:使用Maven以后, jar包会从规范的远程仓库下载带本地。
  • jar 包间的依赖:通过依赖的传递性自动完成。
  • jar 包间的冲突:通过对依赖的配置进行调整,让某些 jar包不会被导入。

三、Maven的功能与特性

  • 遵循统一的项目设置 - 在几秒钟内启动一个新项目或模块

  • 在所有项目中共享 - 新开发人员进入项目无须启动时间

  • 依赖管理,包括自动更新、依赖关系闭包(也称为传递依赖关系)

  • 能够同时轻松处理多个项目

  • 一个庞大且不断增长的库和元数据存储库,开箱即用,并与最大的开源项目达成安排,以实时提供其最新版本

  • 可扩展,能够轻松地用Java或脚本语言编写插件

  • 即时访问新功能,只需很少或无需额外配置

  • 用于在 Maven 外部进行依赖管理和部署的 Ant 任务

  • 基于模型的构建:Maven能够将任意数量的项目构建为预定义的输出类型,例如JAR,WAR或基于项目元数据的分发,在大多数情况下无需执行任何脚本。

  • 项目信息的连贯站点:使用与构建过程相同的元数据,Maven能够生成一个网站或PDF,包括您想要添加的任何文档,并将有关项目开发状态的标准报告添加到该标准报告中。此信息的示例可以在本网站左侧导航底部的“项目信息”和“项目报告”子菜单下看到。

  • 发布管理和分发发布:无需太多额外的配置,Maven 将与您的源代码管理系统(例如 Subversion 或 Git)集成,并根据某个标签管理项目的发布。它还可以将其发布到分发位置以供其他项目使用。Maven 能够发布单个输出,例如 JAR、包含其他依赖项和文档的存档,或作为源代码分发。

  • 依赖关系管理:Maven鼓励使用JAR和其他依赖关系的中央存储库。Maven 带有一种机制,项目的客户端可以使用该机制从中央 JAR 存储库下载构建项目所需的任何 JAR,就像 Perl 的 CPAN 一样。这允许Maven的用户跨项目重用JAR,并鼓励项目之间的通信,以确保处理向后兼容性问题。


给大家赖一个 ~

<dependencies>
    <!-- 添加外部依赖 -->
    <dependency>
        <groupId>...</groupId>        <!-- 可自定义 -->
        <artifactId>...</artifactId>  <!--可自定义-->
        <version>...</version>        <!--版本号-->
        <scope>...</scope>            <!--作用域-->
        <systemPath>${basedir}\src\lib\...</systemPath> <!--依赖目录-->
    </dependency> 
</dependencies>

在这里插入图片描述

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

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

相关文章

Flink双流join导致数据重复

大家都知道flink sql 中 left join 数据不会互相等待&#xff0c;存在 retract 问题&#xff0c;会导致写入 kafka 的数据量变大&#xff0c;就会导致出现数据重复的问题。 举例&#xff1a;即常见的曝光日志流&#xff08;show_log&#xff09;通过 log_id 关联点击日志流&am…

SQL:数据去重的三种方法

1、使用distinct去重 distinct用来查询不重复记录的条数&#xff0c;用count(distinct id)来返回不重复字段的条数。用法注意&#xff1a; distinct【查询字段】&#xff0c;必须放在要查询字段的开头&#xff0c;即放在第一个参数&#xff1b;只能在SELECT 语句中使用&#…

spring整合fastdfs客户端

解决Dependency ‘com.github.tobato:fastdfs-client:1.27.2’ not found 错误问题。 一、 将fastdfs客户端git下来 git https://github.com/happyfish100/fastdfs-client-java.gitcd fastdfs-client-java然后将fastdfs-client-java构建到本地maven仓库 mvn clean install&…

Pandas的数据结构

Pandas的数据结构 处理CSV 文件 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。 Pan…

【强化学习】深入浅出强化学习--机器人找金币

文章目录Grid_mdp.py定义和初始化从环境状态构建观测值ResetStepRenderingClose注册环境参考文章Grid_mdp.py 定义和初始化 首先自定义环境&#xff0c;自定义的环境将继承gym.env环境。在初始化的时候&#xff0c;可以指定环境支持的渲染模式&#xff08;例如human,rgb_arra…

项目实战 | YOLOv5 + Tesseract-OCR 实现车牌号文本识别

项目实战 | YOLOv5 Tesseract-OCR 实现车牌号文本识别 最近看到了各种各样的车牌识别&#xff0c;觉得挺有意思&#xff0c;自己也简单搞一个玩玩&#x1f63c;。 传统的图像处理算法我也不太会&#xff0c;就直接用深度学习的方法实现吧。 文章目录项目实战 | YOLOv5 Tesser…

docker基础篇——万字解读小鲸鱼

目录 前言 为什么会出现docker&#xff1f; 背景 docker理念 容器和虚拟机比较 容器发展简史 容器虚拟化技术 Why Docker docker的基本组成 镜像(image) 容器(container) 仓库(repository&#xff09; 总结 第一个docker镜像——hello-world run干了什么 …

Spring Boot与Shiro实现权限管理04

1.实现用户管理 1.1 用户列表 首先创建dto&#xff0c;用于请求与响应数据的传输。在common包下创建dto包&#xff0c;在该包下创建UserDto.java类。 Data AllArgsConstructor NoArgsConstructor public class UserDto implements Serializable {private Integer id;private…

云原生|kubernetes|本地存储hostpath-provisioner部署以及无token密码方式登陆dashboard的部署

前言&#xff1a; kubernetes的存储类大家应该都知道&#xff0c;常用的有nfs-client-provisioner这样插件形式&#xff0c;其实还有一种本地存储类的插件&#xff0c;只是这个估计很冷门&#xff0c;生产上网络存储持久卷还是主流的&#xff0c;本文将介绍一种本地存储类插件…

Linux基本命令简单介绍

Linux基本命令前言ls命令pwd命令cd命令touch命令mkdirrmdir指令rm命令前言 本文主要简单介绍一下高频使用的Linux基本命令和一些比较快捷的热键&#xff1b; 废话不多说&#xff0c;直接进入主题&#xff01;&#xff01;&#xff01; ls命令 语法&#xff1a; ls 选项目录…

OSPF高级配置——虚链路介绍与配置

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.虚链路及其配置 1.虚链路概述 2.配置虚链路的规则及特点 …

进程的状态

目录前言一、运行态二、终止态三、阻塞态四、挂起态五、Linux中的其他进程状态1. R(running)&#xff1a;运行态2. S(sleeping)&#xff1a;睡眠状态3. D(disk sleeping):阻塞状态4. Z和X状态:死亡与僵尸5. T(Stopping):暂停状态6.t(tracing stopping):追踪暂停状态总结前言 在…

手把手教你实现红黑树

目录 一.红黑树介绍与优势 二.红黑树的特性 ①所有节点不是黑色就是红色 ②根节点为黑色 ③红色节点的左右孩子节点必须为黑色 ④每一条路径均含有相同的黑色节点数 ⑤叶子节点为黑色 三.红黑树实现原理 &#xff08;一&#xff09;.插入节点颜色选择 &#xff08;二…

web安全渗透之钓鱼网站提权

本实验实现1&#xff1a;要生成一个钓鱼网址链接&#xff0c;诱导用户点击&#xff0c;实验过程是让win7去点击这个钓鱼网站链接&#xff0c;则会自动打开一个文件共享服务器的文件夹&#xff0c;在这个文件夹里面会有两个文件&#xff0c;当用户分别点击执行后&#xff0c;则会…

【数据结构】单链表(不带头结点)基本操作详解——C语言实现

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f40c; 个人主页&#xff1a;蜗牛牛啊 &#x1f525; 系列专栏&#xff1a;&#x1f6f9;初出茅庐C语言、&#x1f6f4;数据结构 &#x1f4d5; 学习格言&#xff1a;博…

Flink系列文档-(YY08)-Flink核心概念

1 核心概念 1.1 基础概念 用户通过算子api所开发的代码&#xff0c;会被flink任务提交客户端解析成jobGraph然后&#xff0c;jobGraph提交到集群JobManager&#xff0c;转化成ExecutionGraph&#xff08;并行化后的执行图&#xff09;然后&#xff0c;ExecutionGraph中的各个…

日志冲突怎么解决?slf4j和log4j的区别?看完这一篇,这些都是小意思啦

文章目录一.你的烦恼二.前置知识介绍三.说一说让你头大的各种日志依赖1.Slf4j的核心依赖2.log4j的jar包依赖3.slf4j对于log4j的桥接包的依赖4.log4j对于slf4j的逆转包四.再举一些常见小例子使用slf4j作为门面,log4j作为实现需要引入的依赖使用slf4j作为门面,logback作为实现需要…

[ Linux ] 重定向的再理解,以及文件系统的理解、inode和软硬链接

在上篇文章我们了解了Linux中文件描述符和重定向以及缓冲区的理解&#xff0c;本篇文章我们要对了解一下重定向的再理解、文件系统以及引出inode的意义和软硬链接。 目录 0.重定向 0.1标准输出 标准错误 为什么perror2后面跟了一个success 1.inode 1.1 inode理解 一个in…

一文吃透JavaScript中的DOM知识及用法

文章目录一、前言二、DOM框架三、认识DOM节点四、JS访问DOM1、获取节点2、改变 HTML3、改变 CSS4、检测节点类型5、操作节点间的父子及兄弟关系6、操作节点属性7、创建和操作节点五、快速投票一、前言 DOM&#xff1a;Document Object Model&#xff08;文档对象模型&#xff0…

指针的进阶应用之双指针、三指针

在牛客网和leetcode等网站刷题的过程中&#xff0c;时常会遇到一些使用双指针和三指针解决问题的实例。今天&#xff0c;我来介绍这两种方法&#xff0c;相信你会对指针的应用会提高一个档次。 目录移除元素删除有序数组中的重复项合并两个有序数组在下面的讲解的过程中&#x…