Maven maven-war-plugin не заменяет значения в web.xml - PullRequest
0 голосов
/ 19 ноября 2018

Maven версия: 3.5.4

Мой веб-каталог не находится в стандартном месте. Это в / веб

Конфигурация Maven War

 <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
                <webResources>
                    <!--
                        Filter these files to look for ${my.maven.property} to replace them
                        at build time with a maven property value
                    -->
                    <resource>
                        <filtering>true</filtering>
                        <directory>web/WEB-INF</directory>
                        <includes>
                            <include>**/web.xml</include>
                        </includes>
                    </resource>
                </webResources>
                <warSourceDirectory>web</warSourceDirectory>
                <failOnMissingWebXml>true</failOnMissingWebXml>
                <webXml>web/WEB-INF/web.xml</webXml>
                <packagingExcludes>
                   ${exclude.files.on.build}
                </packagingExcludes>
            </configuration>
        </plugin>

фрагмент свойств из pom.xml

  <properties>
       ...

       <!-- web.xml vars -->
       <web.session.cookie.secure>true</web.session.cookie.secure> <!-- session cookie only sent over https -->
      ...
 </properties>

фрагмент web.xml

   <cookie-config>
        ...
        <secure>${web.session.cookie.secure}</secure>
        ...
    </cookie-config>

Свойство "$ {web.session.cookie.secure}" не заменяется в файле web.xml, а имя свойства сохраняется в созданном файле war. Я не смог точно определить ошибку конфигурации. Я работаю в Intellij и получаю тот же результат, независимо от того, собираю ли я артефакт из меню intellij или запускаю команду mvn war: exploded.

Я предполагаю, что это может быть связано с расположением веб-каталога и отсутствующим элементом конфигурации. Сборка maven выполняется должным образом, кроме проблемы со свойствами, которые не заменяются в выходных данных.

Есть какие-нибудь идеи относительно того, почему замены не будут происходить с использованием фильтрации maven-war-plugin?

1 Ответ

0 голосов
/ 20 ноября 2018

maven-war-plugin использует ${basedir} в качестве местоположения pom, поэтому к целевому каталогу для фильтрации следует обращаться по относительному пути оттуда.

<resource>
  <filtering>true</filtering>
  <directory>${basedir}/web/WEB-INF</directory>
  <includes>
    <include>**/web.xml</include>
  </includes>
</resource>

Актуальный путь может быть рассмотрен в mvn help:effective-pom.

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