Maven的介绍和使用

2023-09-17 20:57:49

Maven的作用

项目构建

依赖管理:避免资源间版本冲突问题

统一开发结构:提供统一的项目结构

Maven的使用

下载完压缩包之后放在合适的目录下,其中apache-maven-3.8.8文件夹是安装的maven,下面的repository是本地仓库,其中要修改setting.xml下的仓库路径,设置阿里云镜像。

将这里的路径改为自己设置的 repository 仓库的路径。

这个<mirror>写在<mirrors>中,在注释里面会有mirror的模板。 

Maven项目构建命令

手动创建

使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔

mvn compile   #编译

mvn clena       #清理

mvn test          #测试

mvn package  #打包

mvn install      #安装到本地仓库

插件创建 

依赖管理

依赖传递
  • 依赖有传递性
    • 直接依赖:在当前项目中通过配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 路径优先:当依赖中出现相同资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置位置靠前的覆盖废纸顺序靠后的
  • 特殊优先:当统计配置了相同层级的不用版本,后配置的覆盖先配置的

可选依赖

对外隐藏当前所依赖的资源——不透明

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
    <optional>true</optional>
</dependency>
排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
    <exclusions>
        <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </exclusion>
    </exclusions>
</dependency>
依赖范围

依赖的jar包默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

作用范围:

  • 主程序范围有效(main文件夹范围内)
  • 测试程序范围有效(test文件夹范围内)
  • 是否参与打包(package指令范围内)

生命周期和插件

clean:清理工作

default:核心工作,例如编译,测试,打包,部署等

site:产生报告,发布站点等

插件

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上有预设的功能
  • 通过插件可以自定义其他功能

更多推荐

新的 .NET Upgrade Assistant 版本包含功能更新和 .NET MAUI 改进!

作者:OliaGavrysh排版:AlanWang我们非常高兴的宣布,我们已经在VisualStudio中发布了新版本的.NETUpgradeAssistant,它在新版本中增加了在不更改目标框架的情况下更新项目功能的能力,并且对.NETMAUI的迁移功能有很多改进!.NETUpgradeAssistant是一种可帮助

利用Socks5代理IP加强跨界电商爬虫的网络安全

随着跨界电商的兴起,爬虫技术在这个领域变得越来越重要。然而,网络安全一直是一个值得关注的问题。在本文中,我们将讨论如何利用代理IP和Socks5代理来增强跨界电商爬虫的网络安全,确保稳定和可靠的数据采集,同时避免封禁和风险。背景跨界电商是一个竞争激烈的领域,市场上的商品信息和价格常常会变动。为了保持竞争力,电商企业需要

python写代码过程中的坑230915

1.解释代码IndentationError:expectedanindentedblock这个错误通常是由于代码缩进错误导致的。在Python中,代码块(如循环、条件语句、函数等)通常使用缩进来表示。因此,如果你在期望缩进的位置没有正确缩进代码,就会出现"IndentationError:expectedaninde

计算机竞赛 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

文章目录0前言1课题背景2具体实现3数据收集和处理3卷积神经网络2.1卷积层2.2池化层2.3激活函数:2.4全连接层2.5使用tensorflow中keras模块实现卷积神经网络4MobileNetV2网络5损失函数softmax交叉熵5.1softmax函数5.2交叉熵损失函数6优化器SGD7学习率衰减策略6最后0

lv5 嵌入式开发-2 exec函数族

目录1进程–exec函数族1.1exec函数族特点1.2进程–execl/execlp使用方法1.3进程–execv/execvp2进程–system3exec族要点演示掌握:exec函数族、system1进程–exec函数族执行程序,通孔ps-elf发现,父进程是bash。这意味着该进程是由一个bashshell中启

Stable Diffusion AI绘图使用记录

1、下载安装使用官方网站https://github.com/AUTOMATIC1111/stable-diffusion-webui跟着一步步安装就行(英文版的)2、真人转二次元下载控制插件ControlnetGitHub-Mikubill/sd-webui-controlnet:WebUIextensionforC

HTML5 游戏开发实战 | 五子棋

五子棋是一种家喻户晓的棋类游戏,它的多变吸引了无数的玩家。本章首先实现单机五子棋游戏(两人轮流下),而后改进为人机对战版。整个游戏棋盘格数为15×15,单击鼠标落子,黑子先落。在每次下棋子前,程序先判断该处有无棋子,有则不能落子,超出边界不能落子。任何一方有横向、竖向、斜向、反斜向连到5个棋子则胜利。五子棋游戏的运行界

python学习之【with语句】

前言上一篇文章​​python学习之【文件读写】​​​中我们学习了python当中的文件读写,这篇文章接着学习python中文件读写的with语句。了解with语句在很多场景中,通过使用with语句可以让我们可以更好地来管理资源和简化代码,它可以看做是对try…finally模式的简化。with语句的语法格式witho

Baichuan2大模型本地部署

作为今年九月份开源的一个中午大语言模型,Baichuan2已经在各个维度上取得了亮眼的结果,效果已经超过了当前火热的ChatGLM2-6B,可以通过自然语言交互的方式为你提供以下服务:提供知识:我可以回答各领域的问题,并提供准确的信息和知识,帮你解决问题或获取所需要的信息文本生成:我可以创作不同体裁的内容,激发你的灵感

Spring 中经典的 9 种设计模式

1、简单工厂BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。2、工厂方法FactoryBean接口。3、单例模式Spring依赖注入Bean实例默认是单例的。4、适配器模式S

华为云云耀云服务器L实例评测|拉取创建canal镜像配置相关参数 & 搭建canal连接MySQL数据库 & spring项目应用canal初步

前言最近华为云云耀云服务器L实例上新,也搞了一台来玩,本篇博客介绍如何在华为云上部署canal的docker镜像,以及在spring项目中的初步应用。其他相关的华为云云耀云服务器L实例评测文章列表如下:初始化配置SSH连接&安装MySQL的docker镜像&安装redis以及主从搭建&7.2版本redis.conf配置

热文推荐