Как отфильтровать наложенные ресурсы WAR при построении WAR с Maven? - PullRequest
1 голос
/ 24 марта 2011

У меня есть две WARS:

  1. base-overlay
  2. example-app

base-overlay содержит файлы конфигурации XML в src/main/webapp/WEB-INF/spring/*.xml.В этих XML-файлах конфигурации у меня есть параметры, которые необходимо отфильтровать при построении WAR приложения-примера, которое зависит от базового оверлея, который должен быть его оверлеем.Например, base-overlay/src/main/webapp/WEB-INF/spring/app-context.xml содержит ${data.url}.При упаковке WAR из примера приложения я установил свойство POM <data.url>http://example.com:1234</data.url> для замены ${data.url}.

базового оверлея. Когда я настраивал maven-war-plugin для фильтрации этого файла, мне пришлосьукажите каталог target/war/work/com.example/base-overlay/WEB-INF/spring, чтобы найти файл app-config.xml для фильтрации, прежде чем добавлять его в недавно упакованный пример WAR-приложения.Это похоже на хак и также не работает при тестировании с Jetty, так как WAR не создается и не фильтруется.

Кроме того, элемент <build/> POM имеет элемент <resources/>, но яне удалось заставить это работать.

Как отфильтровать ресурсы наложения при компиляции?

1 Ответ

0 голосов
/ 06 мая 2011

Чтобы решить эту проблему, я переместил все ресурсы XML (Spring) в соответствующий каталог ресурсов Maven ${basedir}\src\main\resources\, а затем добавил это в POM в элементе <build/>, например:

<resources>
    <resource>
        <directory>${basedir}/src/main/resources/</directory>
        <filtering>true</filtering>
    </resource>
</resources>

Я включил общие ресурсы XML, которые не нужно фильтровать, в WAR с базовым оверлеем. В каждое приложение, использующее WAR с базовым оверлеем, я добавил XML-файл с именем filtered-resources.xml, который фильтруется каждый раз, когда WAR-файл приложения упаковывается и собирается Jetty.

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