maven打war包的过程中,都用了哪些插件呢?
一、maven生命周期
http://ifeve.com/introduction-to-the-lifecycle/
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
1.内置的三个生命周期
我这边的简单理解是:
首先一共有三个内置的生命周期,一个为clean,一个为default,一个为site。
There are three built-in build lifecycles: default, clean and site. The default lifecycle handles your project deployment, the clean lifecycle handles project cleaning, while the site lifecycle handles the creation of your project's site documentation.
2.生命周期的组成
一个生命周期包含了许多阶段,比如compile阶段,install阶段等等。阶段是有顺序的,典型的如下:

3.goal是什么
在讲阶段之前,先说下goal。
goal可以简单理解为一个功能,功能是由插件实现的。
牛逼的插件可以有很多个goal,当然,我们不鼓励一个插件做了所有的事,毕竟unix哲学嘛。
比如compile插件,org.apache.maven.plugins:maven-compiler-plugin。
它既可以编译main下面的代码,也可以编译test下面的代码,这里就被分成了两个goal:
compile和testCompile。
当然,也有个直观介绍(idea中的maven视图),看下图:

4.阶段的组成
每个阶段由0到多个目标(goal)组成。
但是,goal可以选择不绑定到阶段,也可以绑定到多个阶段。
所以执行整个生命周期的过程,就是按照顺序,执行各个phase,具体到每个phase的时候,按顺序执行绑定到该phase的goal。
以打jar包为例,默认maven已经帮我们在每个phase中绑定了goal,如下:

5.如果我们想在某个阶段新增goal怎么办呢?
可以像下面这样,在<phase>元素中指定:

以上配置<phase>中配置了process-test-resources阶段,该阶段我们附加了一个goal,那就是time。
再看下面的配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
以上配置在<phase>中指定了compile,即在compile阶段附加一个goal,该goal为当前插件的jar。
二、default生命周期中打包时默认绑定的插件
https://maven.apache.org/ref/3.6.0/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging
专门对比了下jar包和war包,可以发现只有打包阶段用的插件不一样:

这个可以验证,在idea中,一个默认的maven web工程,在maven视图中,plugins中显示的插件如下:

可以看到,剩下的几个插件,正好是war包pom中默认绑定的那几个插件。
maven打war包的过程中,都用了哪些插件呢?的更多相关文章
- maven编译war包,pom中必须有的几个dependency
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> ...
- IDEA多模块父子依赖maven项目war包部署
IDEA多模块父子依赖maven项目war包部署 Posted on 2018-04-25 | In IDEA | | Visitors 286 IDEA全称为IntrlliJ IDEA,它是一款非常 ...
- rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法
rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一 ...
- Maven开发基础总结(Maven自启动,Maven打war包,Maven热部署)
学习内容: 1.不依赖外部Tomcat,自己启动方式部署 2.Maven打war包,远程部署到centOS 3.Maven热部署(不关闭Tomcat部署应用) 做maven开发前提: 1.编码UT ...
- ubuntu 可能的依赖包,安装过程中根据需要安装
/*************依赖包安装****************/下面是可能的依赖包,安装过程中根据需要安装 build-essential - libglib2.-dev libpng3 li ...
- Eclipse中打包maven项目-war包方式
IntelliJ IDEA打包成war(包括maven项目)点击打开链接 首先要在maven项目中的pom.XML中配置好需要的配置: <project xmlns="http://m ...
- maven生成war包的两种方式
war包即对WEB应用程序进行打包,用于应用容器的部署.如在jboss中只要把war包丢入deploy目录下即可发布自己的应用了.打包方式有很多中,很多工具本身就支持此功能.下面主要介绍通过maven ...
- 用Maven部署war包到远程Tomcat服务器
过去我们发布一个Java Web程序通常的做法就是把它打成一个war包,然后用SSH这样的工具把它上传到服务器,并放到相应的目录里,让Tomcat自动去解包,完成部署. 很显然,这样做不够方便,且我们 ...
- maven 打war包tomcat服务器乱码问题
今天用maven3的命令打war包,命令是mvn clean package -Dmaven.test.skip=true,打包后放在tomcat跑起来后发现tomcat的日志出现乱码. 后来在pom ...
随机推荐
- matlab中 %d,%f,%c,%s代表什么意思
1.%d就是输出整型:%3d就是说按照长度为3的整型输出,比如10,输出就是“_10”,“_”代表空格. 2.%f就是输出小数:%6.2f就是小数点后保留2位,输出总长度为6,比如3.14159,输出 ...
- Linux学习笔记<五>——<Shell部分>
管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...
- NFS介绍 NFS服务端安装配置 NFS配置选项
NFS 介绍 • NFS是Network File System的缩写 • NFS最早由Sun公司开发,分2,,4三个版本,2和3由Sun起草开发,.0开始Netapp公司参与并主导开发,最新为4.1 ...
- OSG 坑爹的Android example
本人3D编程方面超级菜鸟,因为项目需要,接触了一些Open Scene Graph(OSG)引擎的相关编程工作.首先我得承认,OSG这个引擎超级牛,无论是渲染效果和效率,都没的说,很棒.但是,OSG提 ...
- vue如何加搜狗联盟广告
搜狗联盟广告和百度联盟广告大同小异,但是好在百度联盟广告的使用方法网上还是可以找到一些,而搜狗联盟广告的教程网上几乎找不到,都是最基本的创建代码位的教程. 在vue中如果要加入搜狗联盟广告,就不能直接 ...
- synchronized关键字的用法总结
synchronized关键字主要有以下这3种用法: 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代 ...
- mysql对执行结果进行html格式的输出?输出html格式?
需求描述: 在执行mysql命令的时候,有的时候需要将查询的结果输出到文件,如果想要html格式的,应该怎么输出, 在此记录下操作的过程. 1.通过tee命令结合--html输出查询结果到html文件 ...
- Unity&C# Time时间相关
1.Unity Time类 1/ Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算. 2/ Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止 ...
- UDP通信-UdpClient
static void Main(string[] args) { Console.WriteLine("发送端"); byte[] buffer = System.Text.En ...
- php大数除法保留精度问题
有人在群里问大数除法,要求保留精度的问题,发现普通的方法都不能保存精度,最后找了一下资料发现可以这样 这倒是个冷门知识,嗯哼