Перезапись ресурсов во время наложения maven war

#java #maven #overlay #maven-war-plugin

#java #maven #наложение #maven-war-плагин

Вопрос:

Как я понял, maven-war-plugin никогда не перезаписывает файлы, которые уже существуют в цели наложения. Например, если у меня есть war A, который зависит от A war B, оба из которых содержат некоторый ресурс, расположенный в src/main/resources/some.xml , результирующий A.war результат будет содержать some.xml из проекта A.

Как мне дать указание maven-war-plugin использовать ресурсы из зависимости (B) по сравнению с исходными (A)?

Комментарии:

1. Есть ли причина, по которой вы не можете просто удалить дубликаты файлов из A?

2. Я согласен с @MaxNanasy. Предполагается, что наложения используются для определения шаблона для войны.

Ответ №1:

См. http://maven.apache.org/plugins/maven-war-plugin/overlays.html:

«Например, если файл index.jsp оверлея my-webapp должен быть установлен в веб-приложении, но другими файлами можно управлять обычным способом, определите две конфигурации оверлея для my-webapp«

     <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
      <overlays>
        <overlay>
          <id>my-webapp-index.jsp</id>
          <groupId>com.example.projects</groupId>
          <artifactId>my-webapp</artifactId>
          <includes>
            <include>index.jsp</include>
          </includes>
        </overlay>
        <overlay>
          <!-- empty groupId/artifactId represents the current build -->
        </overlay>
         ...
      </overlays>
    </configuration>
  

Думаю, это не окончательное решение, но с чего начать.

Ответ №2:

Вы можете использовать плагин maven-resources для копирования файла в нужное место. До или после создания war.