首页 > 其他分享 >总结maven的一些知识

总结maven的一些知识

时间:2023-09-07 17:38:34浏览次数:44  
标签:总结 dubbo 依赖 知识 jar maven 编译 pom 范围

一、jar包管理

1.引入依赖

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

<scope>标签用来指定依赖范围

(1)compile: 编译依赖范围。 

 默认的依赖范围,使用此依赖范围对编译、测试、运行都有效。

(2)test: 测试依赖范围。

 使用此依赖范围只对测试有效。

(3)provided: 已提供的依赖范围。

 使用此依赖范围会对编译和测试有效,对运行无效。

(4)runtime: 运行时的依赖范围。

 使用此依赖范围会对测试和运行有效,对于编译无效。

(5)system: 系统依赖范围。

 和provided依赖范围完全一样。

(6)import: 导入依赖范围。

 此依赖范围只会在<dependencyManagement>标签中使用,将依赖一个POM类型的项目中的所有依赖全部导入到目标项目中来。要用到此依赖范围必须要声明<type>pom</type>。

注:type标签用来指明依赖需要引入的类型(jar、war、pom等),默认为jar。

2.排除依赖

pom中引入的第三方依赖中还依赖了其他的第三方依赖,maven会将所有直接依赖和间接依赖的jar包都下载到本地,如果我们不需要某个间接依赖的jar包,需要将该jar包依赖排除

<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>1.4.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3.依赖传递

<optional>标签不设置默认为false,表示传递依赖;true表示不传递依赖

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <optional>true</optional>
</dependency>

4.模块聚合

<!--聚合的模块-->
<modules>
        <module>dubbo-base</module>
        <module>dubbo-framework</module>
        <module>dubbo-config</module>
        <module>dubbo-registory</module>
        <module>dubbo-core</module>
        <module>dubbo-test</module>
</modules>
<!--打包类型定-->
<packaging>pom</packaging>

直接对打包类型为pom的模块进行生命周期的管理,Maven会自动帮我们管理聚合的所有模块的生命周期,操作顺序跟依赖顺序有关系

5.模块继承

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.14</version>
    <relativePath/>
</parent>

通过模块继承可以实现在子工程中沿用父工程中的配置,在父工程中定义统一的依赖管理,这样可以避免项目构建时出现依赖冲突问题

6.这里推荐一个常用的idea插件Maven Helper

下载安装

总结maven的一些知识_maven

进入Dependency Analyzer界面

总结maven的一些知识_maven_02

总结maven的一些知识_maven_03

当我们解决依赖冲突时,可以按下图步骤点击Exclude,插件会自动在我们的pom文件中对应的位置添加<exclusion>的相关代码,快速的进行依赖排除

总结maven的一些知识_maven_04


二、maven生命周期

1.idae中体现的maven生命周期

总结maven的一些知识_maven_05

clean(清理):清理本地的target目录

validate(校验):校验项目是否正确并且可以完成项目的构建过程

compile(编译):编译项目的源代码

test(测试):使用合适的单元测试框架运行测试

package(打包):将编译后的代码打包成可分发格式的文件

verify(验证):运行任意的检查来验证项目包有效且达到质量标准

install(安装):安装项目包到本地maven仓库,这样项目包可用作其他本地项目的依赖

site(站点):生成项目的站点文档

deploy(部署):将最终的项目包复制推送到远程仓库中

注:在Idea中点击这几个生命周期时,Maven会自动将之前所有的生命周期都执行一遍


本次先总结到这里,之后有新的内容随时补充。


标签:总结,dubbo,依赖,知识,jar,maven,编译,pom,范围
From: https://blog.51cto.com/u_16235863/7398820

相关文章

  • 鸿蒙开发基础知识和环境搭建详解
    鸿蒙开发学习方案:学习基础知识:了解鸿蒙的基本概念和特点,包括其分布式架构、能力和开发理念。学习鸿蒙的开发环境搭建,包括安装开发工具和配置开发环境。学习鸿蒙应用开发:学习鸿蒙应用开发框架,包括应用程序生命周期、界面设计和布局、事件处理等。学习鸿蒙应用的数据存储和管理,包括文......
  • 云服务器——安装Maven
    1.首先新建一个maven文件夹用于下载maven安装包,可采用直接官网下载压缩包上传至服务器,也可以采用wget直接下载,这里采用wget下载wgethttps://archive.apache.org/dist/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz2.下载完之后解压缩tar-zxvfapache-maven-3.......
  • 网络的一些基础知识
    tcp三次握手服务器进入LISTEN监听状态客户端尝试连接服务器,发送SYN包产生一个随机的初始序列号seq=x,客户端进入SYN_SEND状态等待服务器确认服务器接收SYN包并确认,ack=x+1,同时向客户端发送一个SYN包,seq=y,服务器进入SYN_RECV状态客户端收到服务器的SYN+ACK包,向服务器发......
  • 【软考】系统集成项目管理工程师(三)信息系统集成专业技术知识①【16分】
    一、系统集成的特点官方解释:1、信息系统建设的内容主要包括设备采购、系统集成、软件开发和运维服务等;2、信息系统集成是指将计算机软件、硬件、网络通信、信息安全等技术和产品`集成`为能够满足用户特定需求的信息系统;显著特点如下:1、信息系统集成要以满足用户需求为根本出发点;2......
  • 软件测试|pip常用命令总结
    当使用Python进行开发时,pip是一个非常有用的包管理工具,它可以帮助我们方便地安装、升级和管理Python包。本文将介绍一些常用的pip命令,以帮助您更好地使用pip。查看帮助文档运行pip--help运行这个命令将帮助我们更好地了解pip的使用,pip命令的参数会完整展示出来,如下:pip--he......
  • IDEA编译报错:maven-resources-production:guyi-admin: java.lang.IndexOutOfBoundsExc
    编译项目的时候,IDEA一直提示:maven-resources-production:xxxxxx:java.lang.IndexOutOfBoundsException:Range[-1,-1+1025)outofboundsforlength1024,maven-resources-production:xxxxxx:java.lang.IndexOutOfBoundsException:Range[-1,-1+1025)outofboundsfor......
  • 常见问题总结 计算机 维修 软件 配置 - 长期更新
    笔记本wifi突然不能用了右下角没有wlan的开关,打开设备管理器,网卡那里是黄色感叹号。我这里遇到的是Intelac9462(型号可能记错)网卡,错误代码为10。大神说很可能是网卡上的天线接口不良了,建议拆开后盖,把2根天线拔下来重插一下。以下为可能有用的方法:禁用网卡,再启动网卡卸载......
  • vue知识点总结
    一、MVVM模型(model-view-viewmodel) ......
  • PyTorch基础知识
    PyTorchTutorialPython3中机器学习框架dataset=MyDataset(file)dataloader=DataLoader(dataset,batch_size=size,shuffle=True)Training:TrueTesting:Falsefromtorch.utils.dataimportDataset,DateLoaderclassMyDataset(Dataset):def__init__(self,......
  • uniapp项目实践总结(十一)自定义网络检测组件
    导语:很多时候手机设备会突然没网,这时候就需要一个网络检测组件,在没网的时候显示提示用户,提供用户体验。目录准备工作原理分析组件实现实战演练案例展示准备工作在components新建一个q-online文件夹,并新建一个q-online.vue的组件;按照前一篇所说的页面结构,编写好预......