【问题标题】:Maven War Plugin : Specify Regular Expression to exclude libraries within web-inf/libMaven War 插件:指定正则表达式以排除 web-inf/lib 中的库
【发布时间】:2023-03-15 16:15:02
【问题描述】:

因为我们有大约 8 个项目,它们具有相同的依赖项并部署到 tomcat。由于加载所有这些类需要消耗内存,我们决定将所有常见的 jar 移动到自定义的 tomcat 基础安装中,并使单独的战争只具有所需的自定义库。

为此,我们需要更改 maven war 插件配置,我们可以在其中指定排除库的正则表达式,如下所示:

%regex[WEB-INF/lib/TODO]

我想要一些帮助来找出我可以放在这里的确切正则表达式,以避免所有公共库并包含所需的自定义库。以下是一些自定义库名称,它们需要在 war 中成为 WEB-INF/lib 的一部分:

  1. xmax-common.jar
  2. xmax-services.jar
  3. xmax-model.jar
  4. momentum-core.jar

非常感谢您的建议。

【问题讨论】:

    标签: java regex maven tomcat


    【解决方案1】:

    你可以尝试只包含需要的包而不是排除不必要的库

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
    
        <configuration>
            <packagingIncludes>
                WEB-INF/lib/xmax-common.jar,
                WEB-INF/lib/xmax-services.jar,
                WEB-INF/lib/xmax-model.jar,
                WEB-INF/lib/momentum-core.jar
            </packagingIncludes>
        </configuration>
    </plugin>
    

    【讨论】:

    • 就可以了。谢谢你。我没有继续添加条目,而是考虑使用正则表达式,这是解决问题的一种通用方法。
    【解决方案2】:

    如果使用正则表达式来包含这些库,请尝试以下操作:

    <configuration>
        <packagingExcludes>%regex[WEB-INF/lib/(?!xmax)(?!momentum).*.jar</packagingExcludes>
        ...
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 2015-09-18
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      相关资源
      最近更新 更多