#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.