2014-01-15 3 views
3

Я изо всех сил пытался тренироваться, как исключить предметы из взорванной войны, используя плагин maven overlay.maven overlay взорванной войны: исключая предметы из взорванной войны

У меня есть следующие:

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>build-directory-tree</id> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>exploded</goal> 
      </goals> 
      <configuration> 
       <overlays> 
        <overlay> 
         <groupId>com.mycompany.Online</groupId> 
         <artifactId>MyCompanyOnline</artifactId> 
         <excludes> 
          <exclude>WEB-INF/web.xml,WEB-INF/applicationContext.xml,WEB-INF/wro/**,WEB-INF/wro/wro-mapping.properties</exclude> 
         </excludes> 
        </overlay> 
       </overlays> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Файл web.xml и applicationContext.xml получить исключены хорошо, но они находятся под: $ {BASEDIR}/SRC/главная/веб-приложение/WEB-INF/

Остальные каталог и файлы в этом исключающем списке не исключаются. Они расположены в разобранной войне в: $ {project.build.directory}/$ {project.build.finalName}/WEB-INF/соната/

Я не уверен, что я мог бы делать по-другому, чтобы исключить содержание $ {project.build.directory}/$ {project.build.finalName}/WEB-INF/сонате/

Независимо от того, что я стараюсь эти файлы успокоены наслаивали несмотря на исключение.

ответ

4

После того, как копались целые века и пробовали разные конфигурации, я наконец нашел, что работает.

Использование mvn clean install -X на дочернем объекте, который накладывается на родителя. Я подтвердил, что файлы копируются, так как вместо символа «-» был символ «+». Фактически файлы, которые я, однако, были исключены из-за блока exclude, который фактически исключен, поскольку у ребенка есть файл с тем же именем в том же месте.

В конце концов я посмотрел в plugin.xml для Maven-войны-плагин-2.2.jar и я нашел этот параметр: dependentWarExcludes, который в соответствии с XML является:

<deprecated>Use <overlay><excludes> 
instead</deprecated> 

Как видно из моего вопроса выше, я попытался использовать <exclude> в <overlay> в соответствии с рекомендациями, но на самом деле это ни для чего не работает. В конце концов dependentWarExcludes работал после перестройки блока плагина следующим образом:

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 

     <configuration> 
      <overlays> 
       <overlay> 
        <groupId>com.mycompany.Online</groupId> 
        <artifactId>MyCompanyOnline</artifactId> 
       </overlay> 
      </overlays> 
      <dependentWarExcludes>WEB-INF/web.xml,WEB-INF/applicationContext.xml,WEB-INF/wro/</dependentWarExcludes> 
     </configuration> 

     <executions> 
      <execution> 
       <id>build-directory-tree</id> 
       <phase>process-resources</phase> 
       <goals> 
        <goal>exploded</goal> 
       </goals> 
      </execution> 
     </executions> 
</plugin> 
+1

устаревания из 'dependentWarExcludes' Шоуло быть ... осуждаются. См. Https://jira.codehaus.org/browse/MWAR-257 – Pino

+0

Структура «исключений», похоже, работает в версии 3.0.0 плагина maven-war. – chrisinmtown

Смежные вопросы