исключить файл из сборки maven - PullRequest
9 голосов
/ 07 марта 2011

У меня есть веб-приложение с файлом src / main / webapp / META-INF / context.xml, в котором содержится некоторая конфигурация для тестирования базы данных.На рабочем сервере этот файл находится в $ TOMCAT_HOME / conf / Catalina / localhost / ROOT.xml, и я тестирую его со встроенным tomcat, поэтому я не хочу упаковывать этот файл.Я хотел бы исключить этот файл из сборки maven.Я попробовал следующее:

<build>
  ...
  <resources>
    <resource>
      <directory>src/main/webapp/META-INF</directory>
      <filtering>true</filtering>
      <excludes>
        <exclude>context.xml</exclude>
      </excludes>
    </resource>
  </resources>
</build>

, а также следующее:

<build>
  ...
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <resources>
        <resource>
          <directory>src/main/webapp/META-INF</directory>
          <filtering>true</filtering>
          <excludes>
            <exclude>context.xml</exclude>
          </excludes>
        </resource>
      </resources>
    </configuration>
  </plugin>
</build>

Но файл все еще упакован в каталог войны и сборки (например, target / myapp-1.0-SNAPSHOT / META-INF / context.xml).Что я делаю не так?

Ответы [ 3 ]

18 голосов
/ 08 марта 2011

Вы можете попробовать использовать параметр packagingExcludes

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <packagingExcludes>META-INF/context.xml</packagingExcludes>
            </configuration>
        </plugin>

Чтобы исключить ресурс из сборки, первый фрагмент вопроса выглядит нормально, за исключением того, что должен быть указан абсолютный путь resource directory. Например

<directory>${basedir}/src/main/webapp/META-INF</directory>
3 голосов
/ 11 июля 2014

Остальные ответили на главный вопрос, но я заметил еще одну деталь из вашего первоначального решения -

      <filtering>true</filtering>

В Maven «фильтрация ресурсов» не означает того, что вы, вероятно, думаете, что это означает. Речь идет не о включении / исключении ресурсов, а о том, должны ли они обрабатываться для заполнения ссылок на встроенные переменные.

См. http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

0 голосов
/ 16 апреля 2013

Недавно у меня была похожая проблема с persistence.xml. Попробуйте вставить это в свой POM:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <excludes>
          <exclude>META-INF/context.xml</exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>

Если это не поможет, попробуйте заменить maven-jar-plugin на maven-war-plugin .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...