maven: отфильтрованный ресурс не упакован в файл WAR - PullRequest
3 голосов
/ 10 ноября 2011

У меня есть проект maven, в котором я использую maven-war-plugin для упаковки проекта:

<packaging>war</packaging>

Я установил фильтр из файла свойств на основе среды, для которой я строю:

<filters>
    <filter>properties/${env}.properties</filter>
</filters>

Я пытаюсь отфильтровать XML-файл, расположенный в / src / main / webapp / WEB-INF / classes:

<resources>
    <resource>
        <directory>${basedir}/src/main/webapp/WEB-INF/classes</directory>
        <filtering>true</filtering>
    </resource>
</resources>

Я строю проект из командной строки, используя:

basedir> mvn clean package -Denv=dev

Что создает следующее в моей целевой директории:

--- target
    +-- classes
    +-- project-name
    --- project-name.war

XML-файлы в target / classes должным образом отфильтрованы. Однако xml-файлы в project-name.war / WEB-INF / classes НЕ фильтруются.

Как я могу исправить структуру моего файла pom или директории проекта, чтобы отфильтрованные ресурсы были включены в упакованный файл war?

1 Ответ

7 голосов
/ 21 ноября 2011

Фильтрация ресурсов Webapp обрабатывается по-разному.Это делается через maven-war-plugin :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
      <filters>
        <filter>properties/${env}.properties</filter>
      </filters>
      <webResources>
        <resource>
          <directory>/src/main/webapp/WEB-INF/classes</directory>
          <filtering>true</filtering>
          <!-- set files to include, defaulted to ** -->
          <includes>
            <include>**/pattern1</include>
          </includes>
          <!-- set files to exclude  -->
          <excludes>
            <exclude>**/pattern2</exclude>
          </excludes>
        </resource>
      </webResources>
    </configuration>
</plugin>
...