Maven生命周期和及插件原理用法详解
作者:护花使者 发布时间:2021-09-17 09:47:19
maven周期
maven的生命周期不止package,compile,clean。其实这是主要部分。
以下截图其实展示的是maven的所有周期。
maven的生命周期,主要分为3套(其实每个生命周期下面都分为一些阶段,如上截图所示):
1、clean周期:负责清理项目(清理上一次编译的文件)。
2、default周期: 主体周期,负责完成项目构建主体过程。
3、site周期:建立站点(生成站点文档,发送站点到服务器)。
周期之间是独立的,周期内部的各个阶段是相互依赖的。
例如我执行install,这个阶段是处于default周期内部的,所以这个时候,会从最早的阶段执行到install。post-clean以及前面的是属于clean周期的。
所以
例如mvn clean compile是可以的,但是mvn compile install就没必要了, compile和install是属于同一个周期内的。
maven插件
其实maven的周期是一个规范真正执行的是maven的插件。阶段执行的时候,其实执行的是maven的插件,每个插件又包含很多的goal,所以插件执行的时候就是执行每一个目标。
添加maven的插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
</plugin>
</plugins>
</build>
新下下来的插件:
maven的resources目录
右侧的插件其实有个resources插件。resources插件,负责将配置文件复制到编译目录中。
两种配置文件main-resources、test-resources
maven默认只关注resources目录下的配置文件,其他目录下的配置文件会被忽略。
如果有配置文件不在resources目录下,这个时候就需要额外的配置:
<build>
<resources>
<resource>
<directory>
src/main/java
</directory>
</resource>
</resources>
</build>
如果需要排除一些文件:
<resources>
<resource>
<directory>
src/main/java
</directory>
<!--排除所有的txt文件,其他的文件都会被复制-->
<excludes>
<exclude>**/*.txt</exclude>
</excludes>
</resource>
</resources>
如果只包含一些文件:
<resources>
<resource>
<directory>
src/main/java
</directory>
<!--除了txt文件,其他的文件都不会被复制-->
<includes>
<include>**/*.txt</include>
</includes>
</resource>
</resources>
来源:https://www.cnblogs.com/chenmz1995/p/12809279.html
猜你喜欢
- 需求:校验收货地址是否超出配送范围重要:做该需求的思路就是通过卖家和卖家具体的地址信息,来获取到二者的经纬度, 此时可以使用百度的 &quo
- 最近做了很多项目,不同的系统,不同的部署方式,这里做个记录1.在jar包目录新建一个start.bat 文件,然后写入启动命令j
- 包装类包装类其实就是8种基本数据类型对应的引用类型。基本数据类型引用数据类型byteByteshortShortintIntegerlong
- iOS定位 - 普通定位(没有地图) - 反地理编码(得到具体位置),下面通过代码给大家详解,代码如下:#import <CoreLo
- 本文实例讲述了C#转换日期类型的方法。分享给大家供大家参考。具体分析如下:如:将日期1999-5-31 11:20转换成 /Date(928
- Parallel类(https://www.jb51.net/article/244267.htm)的并行任务需要结束后才能运行后面的代码,
- 自从使用 HttpClient 和 Jsoup 配合编写了几个简单的入门爬虫之后,发现对于绝对路径的需求是很频繁的,因为大部分的网页都写相对
- 本文实例为大家分享了Java实现多任务执行助手的具体代码,供大家参考,具体内容如下1.多线程执行任务类package com.visy.th
- 前言:发现用Winform做一个圆角按钮遇到麻烦,主要是锯齿问题,后面想了想办法解决问题了。主要方法是按钮的区域通过Region指定,但按钮
- 这篇文章主要介绍了JAVA如何定义构造函数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- timer和timertask是jdk自带的定时任务实现,无需导入第三方jar包来完成1、指定多久之后执行此任务,注意:只会执行一次publ
- XML的特点是功能全面,但标签繁琐,格式复杂。在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构。JSON是JavaScri
- Java 多线程方法详解startstart方法 启动线程 在start方法中调用start0方法,而start0是一个
- 前言Spring常见的创建bean实例的方式有:1.通过bean的class属性创建实例 无参构造器带参构造器2.工厂方法静态工厂
- 记得在thinkphp框架中,模型名会自动转换为对应下划线的表名,如,UserType 自动转化为user_type,在平时写程序中很多地方
- SpringBoot 整合 Redis 数据库实现数据缓存的本质是整合 Redis 数据库,通过对需要“缓存&r
- 快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源
- 本文实例为大家分享了C# GDI+实现时钟表盘的具体代码,供大家参考,具体内容如下一、设计如下图界面按键“打开时钟&am
- 前言:根据ThreadPoolExecutor的构造方法,JDK提供了很多工厂方法来创建各种用途的线程池.1 newFixedThreadP
- 这篇文章主要介绍了Java使用Collections工具类对List集合进行排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一