maven-war-plugin

maven-war-plugin用来打包web项目的依赖、类和资源。
参考Apache官方介绍:https://maven.apache.org/plugins/maven-war-plugin/

本文参考3W学习方法来叙述内容。

一、What

1、maven-war-plugin的官方介绍?

WAR 插件负责收集 Web 应用程序的所有工件依赖项、类和资源,并将它们打包到 Web 应用程序存档中。

2、maven-war-plugin是打war包必须安装的吗?

war插件非maven默认安装的插件,当需要为web项目打war包时,可选择安装该插件。

二、Why

1、war插件的功能?

  • war:war是在打包阶段为打包类型为war的项目调用的默认目标。它构建一个WAR文件。
  • war:exploded通常用于在开发阶段通过在指定目录中创建一个支持热部署的 webapp 来加速测试。
  • war:inplace war:explode 的另一种变体,其中 webapp 生成在 web 应用程序源目录中,默认情况下是src/main/webapp。

三、How

1、有哪些常用功能的使用示例?

  • 【DONE:80%】添加和过滤外部 Web 资源
  • 【TODO】WAR 清单自定义
  • 【TODO】快速测试 Jetty 插件
  • 【TODO】创建瘦身战争
  • 【TODO】在 WAR 中包含和排除文件
  • 【TODO】使用文件名映射

2、添加和过滤外部 Web 资源

所有 Maven 项目的默认资源目录是src/main/resources,它将被打包至在 WAR中的target/classes和WEB-INF/classes中。目录结构将在此过程中保留。

2.1、WAR 插件通过webResources参数包含在默认资源目录中找不到的资源。
<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.1</version>
        <configuration>
          <webResources>
            <resource>
              <!-- this is relative to the pom.xml directory -->
              <directory>resource2</directory>
            </resource>
          </webResources>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>
2.2、WAR 插件通过webResources参数,包含/排除资源
...
<configuration>
    <webResources>
        <resource>
            <!-- this is relative to the pom.xml directory -->
            <directory>resource2</directory>
            <!-- the list has a default value of ** -->
            <includes>
            <include>**/*.jpg</include>
            </includes>
            <!-- there's no default value for this -->
            <excludes>
            <exclude>**/image2</exclude>
            </excludes>
        </resource>
    </webResources>
</configuration>
...

PS:混合包含和排除时要小心,排除将具有更高的优先级。如果资源与两者都匹配,则包含不能覆盖排除。

2.3、WAR 插件通过webResources参数,过滤资源(暂不常用,先略过)
2.4、WAR 插件通过webResources参数,覆盖默认目标目录

默认情况下,Web 资源被复制到 WAR 的根目录,如前面的示例所示。要覆盖默认目标目录,请指定目标路径。

...
<configuration>
    <webResources>
        <resource>
            ...
        </resource>
        <resource>
            <directory>configurations</directory>
            <!-- override the destination directory for this resource -->
            <targetPath>WEB-INF</targetPath>
        </resource>
    </webResources>
</configuration>
...
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值