Maven知识点速查
时间:2022-05-07
本文章向大家介绍Maven知识点速查,主要内容包括Maven常用命令、Maven命令行创建目录骨架、Maven中的坐标和仓库、Maven生命周期和插件、Maven的pom.xml结构的解析、Maven依赖范围、Maven依赖传递、Maven依赖冲突,则看规则、Maven的聚合和继承、Maven的构建web项目、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
本文是学习项目管理利器——maven的Maven知识点速查
前置知识:无
Maven常用命令
- compile 编译src/main/java文件
- test 运行src/test/java下的带@Test的测试文件
- package 打包src/main/java到target目录下生成jar包
- install 打包并把jar包拷贝到本地仓库.m2下
- deploy 打包并把jar包拷贝发布到远程仓库
Maven命令行创建目录骨架
- mvn archetype:generate
Maven中的坐标和仓库
- 构件通过坐标作为ID
- 坐标包含
- groupId
- artifactId
- Version
- 仓库:
- 本地仓库
- 远程仓库
Maven生命周期和插件
生命周期:是一种工程的抽象
- clean 清理
- pre-clean
- clean
- post-clean
- default 构建(最核心)
- compile
- test
- package
- install
- site 生成站点
- pre-site
- post-site
- site-deploy 发布站点 插件:是对生命周期的实现 使用插件
<build>
<plugins>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>xxx</version>
<executions>
<phase>package</phase> <!-- 生命周期那个阶段 -->
<goals>
<goal>jar-no-fork</goal><!--做什么事-->
</goals>
</executions>
</plugins>
</build>
Maven的pom.xml结构的解析
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <!--固定搭配 -->
<groupId>反写的公司网址+项目名</groupId> <!-- 坐标 -->
<artifactId>项目名+模块名(项目中的一个模块)</artifactId>
<packaging>jar</packaging> <!-- 打包,jar、war、zip、pom -->
<version>1.0-SNAPSHOT</version>
<!-- 0.x.x 表示大版本
x.0.x 分支版本
x.x.0 小版本
0.0.1snapshot 快照
alpha 内测
beta 公测
release 稳定
GA 正式发布 -->
<name></name> <!--文档用-->
<url></url> <!-- 项目地址 -->
<description></description>
<developers></developers>
<lincences></lincences>
<organization></organization>
<denpendencies>
<denpendency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<type></type>
<scope>test</scope>
<optional></optional> <!-- 设置依赖是否可选 -->
<exclusions><!-- 排除依赖,比如A->B->C,而A不想依赖C -->
<exclusion>
</exclusion>
</exclusions>
</denpendency>
</denpendencies>
<!-- 依赖管理,用在父模块中供继承用, -->
<dependencyManagement>
<denpendencies>
<dependency></dependency>
</denpendencies>
</dependencyManagement>
<build>
<!-- 插件列表 -->
<plugins>
<plugin>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</plugin>
</plugins>
</build>
<!-- 继承 -->
<parent></parent>
<!-- 模块 -->
<modules>
<module>
</module>
</modules>
Maven依赖范围
test
- compile 默认编译和运行都有效
- test 测试
- runtime 运行和测试时有效
- provided 编译和测试有效
- import 只用在dependencyManagement中,表示从其他pom导入dependency的配置
Maven依赖传递
A->B->C,则A间接依赖C,A中会引入C的jar包,可以排除依赖用,则C不见了
Maven依赖冲突,则看规则
- 短路优先
- A->B->C-X(jar) 不选这条
- A->D->X(jar) ✅
- 先声明先优先:如果路径长度相同,则谁先声明,先解析谁
Maven的聚合和继承
聚合:继承:
Maven的构建web项目
在里使用坐标标记的jetty或tomcat插件
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- RecyclerView+PagerSnapHelper实现抖音首页翻页的Viewpager效果
- android中使用react-native设置应用启动页过程详解
- 面试官问我单例模式真的安全吗?我懵逼了
- 详解Android使用CoordinatorLayout+AppBarLayout实现拉伸顶部图片功能
- Android自定义控制条效果
- Android使用MediaPlayer和TextureView实现视频无缝切换
- Android实现静默拍照功能
- Android实现动态体温计
- Android实现倾斜角标样式
- 浅谈Flutter 中渐变的高级用法(3种)
- Android实现左上角(其他边角)倾斜的标签(环绕效果)效果
- Android开发中Button组件的使用
- Android开发之基于RecycleView实现的头部悬浮控件
- Android如何通过命令行操作Sqlite3数据库的方法
- Android实现沉浸式状态栏功能