2015-05-23 5 views
0

В настоящее время я пытаюсь исключить некоторые ресурсы из моей войны. Я прочитал документацию и форумы и нашел много информации.Maven: исключить из войны ресурс

К сожалению, ничего не работает в моем случае ...

У меня есть проект Eclipse, Maven, и если я прав, maven-war-plugin по умолчанию «война строитель», так что я должен изменить это в моем П. xml, чтобы исключить ресурс из битвы.

Я попытался warSourceExcludes, packagingExcludes и webResources/excludes:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>${maven.war.version}</version> 
    <configuration> 
     <failOnMissingWebXml>false</failOnMissingWebXml> 
     <warSourceExcludes>src/main/webapp/frontEndWorkspace</warSourceExcludes> 
     <packagingExcludes>src/main/webapp/frontEndWorkspace 
     </packagingExcludes> 
     <webResources> 
      <resource> 
       <!-- this is relative to the pom.xml directory --> 
       <directory>src/main/webapp</directory> 
       <!-- the list has a default value of ** --> 
       <excludes> 
        <exclude>**/frontEndWorkspace</exclude> 
       </excludes> 
      </resource> 
     </webResources> 
    </configuration> 
</plugin> 

Несмотря на такую ​​конфигурацию, я до сих пор каталог frontEndWorkspace толкнул в моей Tomcat ...

Интересно, если она исходит из того, что я использовать его в моей среде Eclipse?

Заранее благодарен!

+0

вы пытались запустить на обычной командной строки без каких-либо IDE ... – khmarbaise

+0

Нет Это правда, что я использую мой IDE. Зачем? Есть ли какая-то проблема с использованием maven в eclipse? Это не такое же поведение для сборки по умолчанию? – Etienne

ответ

3

Параметры, которые можно использовать в packagingExcludes, который является более общим (применяется на всей структуре войны) или warSourceExcludes, если файлы, которые вы хотите исключить в частности, в папке, определяемой параметром warSourceDirectory (по умолчанию является ${basedir}/src/main/webapp) (see here). Он работает легко, когда вы знаете, что он начинает рассматривать структуру папок войны.

Пример:

Это исключит все файлы заканчивая *.jsp, содержащиеся в папке WEB-INF папки, заданной параметром warSourceDirectory (по умолчанию будучи ${basedir}/src/main/webapp):

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <warSourceExcludes>WEB-INF/**/*.jsp</warSourceExcludes> 
    </configuration> 
</plugin> 

Это будет исключить все файлы, содержащиеся во всех папках pouet, содержащихся в войне (но не в структуре папок):

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <packagingExcludes>**/pouet/**/*.*</packagingExcludes> 
    </configuration> 
</plugin> 

Проблема вашей конфигурации <warSourceExcludes>src/main/webapp/frontEndWorkspace</warSourceExcludes> заключается в том, что вы начинаете с исходной папки, которая является неправильной. Вам просто нужно удалить src/main/webapp и добавить /** после frontEndWorkspace, чтобы иметь <warSourceExcludes>/frontEndWorkspace/**</warSourceExcludes> рабочий (или <warSourceExcludes>frontEndWorkspace/**</warSourceExcludes>).

+0

Спасибо за ваш вклад, но он все еще не работает, как сказано выше, я использую eclipse IDE, поэтому я задаюсь вопросом, не является ли это причиной моей проблемы ... – Etienne

+0

Какие цели вы выполняете? 'mvn clean package'? – Fabien

+0

Какая версия плагина и maven сама? Я тестировал эту конфигурацию плагина на eclipse на моей стороне, и она работала, поэтому я думаю, что нет причины, по которой затмение будет вовлечено в проблему. – Fabien

0

Я нашел ту же проблему в Intellij IDEA, которая использует Maven 3.
Файл войны, который он создает, содержит каталог, который я исключаю.
UPD Решение состоит в использовании синтаксиса, как показано ниже, чтобы устранить исходного каталога MyFolder

<webResources> 
    <resource> 
     <!-- this is relative to the pom.xml directory --> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>**/myFolder/**</exclude> 
     </excludes> 
    </resource> 

</webResources>