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中默认绑定的那几个插件。

转载于:https://www.cnblogs.com/grey-wolf/p/10071549.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: maven-war-plugin插件的packagingExcludes属性用于在打war时排除特定的文件或目录。这可以使用ant-style的通配符进行配置。例如,如果要排除web应用程序的所有.log文件,则可以将packagingExcludes设置为"WEB-INF/logs/*.log"。 ### 回答2: maven-war-plugin是Maven的一个插件,用于打WAR文件。packagingExcludes是maven-war-plugin的一个配置选项,用于指定哪些文件不会被打到最终的WAR文件。 packagingExcludes的作用是帮助开发人员过滤掉不需要WAR文件的文件。通常情况下,WAR文件是用于部署到Web容器含了Web应用程序的所有资源文件,括HTML、CSS、JavaScript、图片等。但是在实际开发过程,可能存在一些临时文件、配置文件、日志文件等不需要部署的文件。 通过配置packagingExcludes,开发人员可以将这些不需要的文件排除在外,从而减小WAR文件的体积,并且减少了部署和发布的时间。这对于大型Web应用来说尤为重要,因为WAR文件越大,部署和发布的时间就越长。 packagingExcludes的配置方式非常简单,只需要在pom.xml文件maven-war-plugin插件的配置添加一个<packagingExcludes>标签,然后在标签指定具体要排除的文件或文件夹的路径即可。如果有多个文件或文件夹需要排除,可以使用逗号或分号进行分隔。 总的来说,packagingExcludes是maven-war-plugin插件提供的一个配置选项,用于在打WAR文件时排除不需要部署的文件,以减小WAR文件体积、提高部署和发布的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值