maven使用教程

news/2024/11/28 17:45:50/

文章目录

  • IDEA创建maven项目
    • maven项目必有得目录结构
  • 项目构建关键字
    • clean
    • validate
    • compile
    • test
    • package
    • verify
    • install
    • site
    • deploy
    • 命令使用方法
      • 方法一 在terminal终端执行
      • 方法二 在右侧得maven中双击
  • 依赖管理
    • 在pom.xml下 导包、scope的传递范围、打包方式
    • 依赖冲突
      • 声明优先原则
      • 就近原则
      • 手动排除(exclusion)
      • 提取常量

IDEA创建maven项目

在这里插入图片描述

每一个Maven项目,都应该有一个独一无二的坐标。就好比之前学过的空间坐标系,我们可以通过X轴、Y轴、Z轴确定空间中唯一的一个点。那么在中央仓库中,我们也可以通过groupId、artifactId、version确定一个唯一的依赖包(当然也可能没有)。- groupId组织Id,一般是公司域名的反转,不要使用大写和特殊字符- artifactId应用名,一般就是应用的名字,不要使用大写和特殊字符- version版本号

maven项目必有得目录结构

在这里插入图片描述

在maven module的根目录下,必须得有如下的结构- pom.xml- src/main/java源代码路径,所有的Java文件都要放在这个路径下- src/main/resources配置文件的路径,原则上来说,maven工程所有的配置文件都要放在这个路径下- src/test/java(没有的时候可以不需要)测试文件的路径- src/test/resources (没有的时候可以不需要)测试需要的配置文件所在的路径

项目构建关键字

clean

可以帮助我们去删除编译生成的target文件夹

validate

这个指令是用来验证文件是否有权限,是否已经损坏等等。这个指令一般不用

compile

这个指令是用来编译的,可以帮助我们生成target文件夹

test

这个测试命令是用来帮助我们执行maven工程中的所有的测试方法的

会去执行我们src/main/test路径下的所有test文件中的测试方法

package

这个命令的意思是打包的意思,把我们的module工程打成一个jar包

执行了这个指令之后,会帮助我们去打包,这个包会生成在 target目录下

verify

其实就是去验证我们打的包是否合法。

install

安装的意思,其实就是可以帮助我们把target文件夹里面的包复制到你的本地仓库中去。

site

建立远程站点

deploy

部署项目

**说明:**site和deploy都是涉及到远程服务的部署的,可以帮助我们把本地仓库中的jar包上传到远程服务器中指定的位置并运行起来。在以后的开发中,部署项目我们不会使用maven,一般使用jenkins这个工具。

命令使用方法

方法一 在terminal终端执行

  mvn 命令(clean等)

在这里插入图片描述

方法二 在右侧得maven中双击

在这里插入图片描述

依赖管理

在pom.xml下 导包、scope的传递范围、打包方式

在这里插入图片描述

每一个依赖都有自己的作用域。有四种作用域- compile假如没有声明作用域的情况,就是compile作用域意味着这个依赖可以在编译的时候,运行的时候都可以生效在src/main/javasrc/test/java 路径下都有效- test只在测试包(src/test/java) 路径下生效- provided在编译的时候生效,在运行的时候失效- runtime意味着这个包在编译的时候失效,在运行的时候生效(mysql-connector-java )

依赖冲突

声明优先原则

<dependencies> 中  谁在上面 版本就是谁

就近原则

存在 依赖传递时  传递次数少的 就是版本

手动排除(exclusion)

<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.3</version><!-- 手动排除 可以排除多个--><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></exclusion></exclusions></dependency>

提取常量

在这里插入图片描述


http://www.ppmy.cn/news/41764.html

相关文章

算法学习|动态规划 LeetCode 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

动态规划一、最长递增子序列思路实现代码二、最长**连续**递增序列思路实现代码三、最长重复子数组思路实现代码一、最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除…

超市购物系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a;https://download.csdn.net/download/qq_50954361/87682510 更多系统资源库…

Redis与MySQL的双写一致性问题

Redis与MySQL的双写一致性问题更新缓存&#xff1f; 删除缓存&#xff1f;先更新缓存再更新数据库先更新数据库&#xff0c;再更新缓存先删除缓存再更新数据库先更新数据库&#xff0c;再删除缓存解决方案1. 重试2. 异步重试2.1 使用消息队列实现重试2.2 Binlog实现异步重试删除…

鲁祥老师吉他课学习笔记

鲁祥老师吉他课学习笔记 导语 参考教材&#xff1a; 《吉他入门经典教程》李国标 《弹指之间》潘尚文 《吉他教本》好连得出版社 《吉他教程》杰瑞吉他学校 《伯克利现代吉他教程》 《吉他考级教程》英国RSL其中的原声吉他和电吉他教程 《一个月电吉他新手养成计划》宫胁俊郎 …

【随笔】Ubuntu远程桌面+Docker显示问题记录

场景&#xff1a; 两台Linux主机 B主机需要远程桌面到A主机上运行程序&#xff0c;需要运行的程序是跑在A主机的Docker里面的。 需要实现的效果就是&#xff0c;A主机分一些资源给B主机来跑程序&#xff0c;B在跑程序的时候不能影响A主机的正常工作。 远程桌面&#xff1a;…

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)

承接上文 承接上一篇文章【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮&#xff08;TimingWheel&#xff09;实现延时队列的开发实战落地&#xff08;上&#xff09;】我们基本上对层级时间轮算法的基本原理有了一定的认识&#xff0c;本章节就从落地的角…

RecvByteBufAllocator内存分配计算

虽然了解了整个内存池管理的细节&#xff0c;包括它的内存分配的具体逻辑&#xff0c;但是每次从NioSocketChannel中读取数据时&#xff0c;应该分配多少内存去读呢&#xff1f; 例如&#xff0c;客户端发送的数据为1KB , 应该分配多少内存去读呢&#xff1f; 例如&#xff1a;…

PCB如何消除电源噪声?六个技巧教你轻松搞定

在高频PCB设计中&#xff0c;电源噪声无疑是最常见的电磁干扰现象&#xff0c;也是许多小白工程师最怕遇见的设计难点&#xff0c;如果在PCB设计时没有很好处理电源噪声&#xff0c;很容易对后续高频信号造成很大的影响&#xff0c;甚至电路无法正常运行&#xff0c;不仅浪费时…