Maven - исключить определенные файлы ресурсов в WAR из расположения по умолчанию src / main / resources.

В настоящее время я хочу исключить некоторые файлы из папки 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 / классы по-прежнему будут содержать файлы XML.

Как это сделать?


person user509392    schedule 16.11.2010    source источник
comment
Просто переместите их в другое место, кроме src / main / resources   -  person khmarbaise    schedule 16.11.2010
comment
Это может быть то, что вы ищете: stackoverflow.com / questions / 3750189 /   -  person    schedule 13.04.2011


Ответы (3)


Как указано в https://stackoverflow.com/a/2737635/722997, быстрый способ исключить файлы из Пакет WAR должен исключить их из раздела build->resources, например:

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

Примечание: примите во внимание, что следующая конфигурация повлияет только на выполнение Maven по умолчанию (пакет WAR, пакет JAR, ...), но не на сборки или другие пользовательские конфигурации.

person edrabc    schedule 15.09.2012

Из документации подключаемого модуля maven war , вы можете включать и исключать ресурсы следующим образом:

...
        <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>
        ...

Вы следите за этим, но он по-прежнему не работает? Если да, то можете ли вы опубликовать фрагмент пометки?

person Raghuram    schedule 16.11.2010
comment
1. При использовании следующего: ‹webResources› ‹resource› ‹excludes› ‹exclude› ** / log4j.xml ‹/exclude› ‹/excludes› ‹/resource› ‹resource› ‹directory› $ {basedir} / src / main / webapp ‹/directory› ‹targetPath›. ‹/targetPath› ‹excludes› ‹exclude› ** / osirisws-servlet.xml ‹/exclude› ‹/excludes› ‹/resource› ‹/webResources› ‹warSourceExcludes› ** /osirisws-servlet.xml,**/log4j.xml ‹/warSourceExcludes› - person user509392; 17.11.2010
comment
получено исключение: [INFO] Trace java.lang.NullPointerException в org.apache.maven.plugin.war.AbstractWarMojo.copyResources (AbstractWarMojo.java:395) в org.apache.maven.plugin.war.AbstractWarMojo.bildoExploded (AbstractWarMojo.bildoExploded java: 325) в org.apache.maven.plugin.war.WarMojo.performPackaging (WarMojo.java:167) в org.apache.maven.plugin.war.WarMojo.execute (WarMojo.java:133) в org.apache .maven.plugin.DefaultPluginManager.executeMojo (DefaultPluginManager.java:483) в - person user509392; 17.11.2010
comment
2. При использовании следующих ‹webResources› ‹resource› ‹directory› $ {basedir} / src / main / resources ‹/directory› ‹targetPath› WEB-INF / classes ‹/targetPath› ‹excludes› ‹exclude› ** / log4j.xml ‹/exclude› ‹/excludes› ‹/resource› ‹resource› ‹directory› $ {basedir} / src / main / webapp ‹/directory› ‹targetPath›. ‹/targetPath› ‹excludes› ‹exclude› * * / osirisws-servlet.xml ‹/exclude› ‹/excludes› ‹/resource› ‹/webResources› ‹warSourceExcludes› ** / osirisws-servlet.xml, ** / log4j.xml ‹/warSourceExcludes› - person user509392; 17.11.2010
comment
log4.xml все еще существует в WEB-INF \ classes, поэтому его нельзя исключить, а можно исключить osirisws-servlet. - person user509392; 17.11.2010

Это несколько поздно для этого вопроса, но я просто пытался сделать то же самое и обнаружил это (с версией maven-war-plugin 3.1.0), добавив:

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

для конфигурации должен делать то, о чем просили (у меня сработало, чтобы удалить файлы свойств, которые мы не хотели распространять с файлом войны).

person Matt Harrison    schedule 26.07.2017