【问题标题】:Maven - Exclude certain resource files into WAR from the default src/main/resources locationMaven - 从默认 src/main/resources 位置将某些资源文件排除到 WAR 中
【发布时间】:2010-11-16 10:53:23
【问题描述】:

目前,我想在打包时将一些文件从默认 src/main/resources 文件夹中排除到我的 WAR 中

我尝试使用具有以下配置的 maven-war-plugin 但失败了。

<webResources>
  <resource>
    <directory>src/main/resources</directory>
    <targetPath>WEB-INF/classes</targetPath>
    <excludes>
      <exclude>*.xml</exclude>
    </excludes>
  </resource>
</webResources>

...WEB-INF/classes 仍将包含 XML 文件。

怎么做?

【问题讨论】:

标签: maven war


【解决方案1】:

正如https://stackoverflow.com/a/2737635/722997 中所指出的,从 WAR 包中排除文件的一种快速方法是在 build-&gt;resources 部分中排除它们,例如:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>*.xml</exclude>
            </excludes>
        </resource>
    </resources>
    ...
</build>

注意:请注意以下配置只会影响 Maven 的默认执行(WAR 包、JAR 包……),不会影响程序集或其他用户配置。

【讨论】:

    【解决方案2】:

    这个问题有点晚了,但我只是想做同样的事情,并发现(使用 maven-war-plugin 3.1.0 版本),并补充说:

    <packagingExcludes>WEB-INF/classes/*.xml</packagingExcludes>
    

    配置应该做所要求的(它对我来说可以删除我们不想与war文件一起分发的属性文件)。

    【讨论】:

      【解决方案3】:

      从 maven war 插件的documentation 可以包含和排除资源如下:

      ...
              <configuration>
                <webResources>
                  <resource>
                    <!-- the default value is ** -->
                    <includes>
                      <include>**/pattern1</include>
                      <include>*pattern2</include>
                    <includes>
                    <!-- there's no default value for this -->
                    <excludes>
                      <exclude>*pattern3/pattern3</exclude>
                      <exclude>pattern4/pattern4</exclude>
                    </excludes>
                  </resource>
                </webResources>
              </configuration>
              ...
      

      您是否在关注它,但它仍然不起作用?如果是这样,您可以发布您的 pom sn-p 吗?

      【讨论】:

      • 1.如果使用以下内容:**/log4j.xml${basedir}/src/main/ webapp.**/osirisws-servlet.xml**/osirisws -servlet.xml,**/log4j.xml
      • 得到异常:[INFO] 在 org.apache.maven.plugin 的 org.apache.maven.plugin.war.AbstractWarMojo.copyResources(AbstractWarMojo.java:395) 处跟踪 java.lang.NullPointerException。 war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:325) at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:167) at org.apache.maven.plugin.war.WarMojo.execute(WarMojo. java:133) 在 org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483) 在
      • 2.如果使用以下 ${basedir}/src/main/resourcesWEB-INF/classes**/log4j。 xml${basedir}/src/main/webapp.**/ osirisws-servlet.xml**/osirisws-servlet.xml,**/log4j.xml
      • log4.xml 仍然存在于 WEB-INF\classes 中,所以不能排除,而可以排除 osirisws-servlet。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多