Вопрос

Я старался это Чтобы исключить целый каталог ($ {bustiR} / src / main / webapp / webscripts) из файла My War, но он не удался. Что случилось?

Это не работает:

<configuration>
   <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp/webscripts</directory>
       <excludes>
        <exclude>**/*.*</exclude>
       </excludes>
      </resource>
   </webResources>
</configuration>

это тоже:

<configuration>
   <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp</directory>
       <excludes>
        <exclude>**/webscripts</exclude>
       </excludes>
      </resource>
   </webResources>
</configuration>

Может кто-нибудь помочь?

Это было полезно?

Решение

Обе ваши решения не помогут, так как они добавляют дополнительный ресурс, который затем деактивирован. Папка исходной сети Webapp копируется по умолчанию без механизма ресурса.

Механизм деактивировать часть этого через <warSourceExcludes> Параметр, как это:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <warSourceExcludes>webscripts/**</warSourceExcludes>
    </configuration>
</plugin>

Другие советы

WarsourceExcludes. кажется, не просто переименован PackagingExCludes..

WarsourceExcludes.: Запятая список токенов, чтобы исключить при копировании содержания Warsourceirectory.

PackagingExCludes.: Запятая список токенов, чтобы исключить из войны до упаковки. Этот вариант может быть использован для реализации случая использования Skinny War.

Есть большая разница: с PackagingExCludes., Токены полностью исключены из последнего файла войны. С участием WarsourceExcludes., Токены просто игнорируются при копировании каталога войны в файл войны. В результате, если токены присутствуют в webappdirectory. Например, они не будут игнорироваться при использовании WarsourceExcludes. Но будет при использовании PackagingExCludes..

И рабочий пример синтаксиса:

<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>

В версии 2.1-альфа-1 это было неправильно названо WarsourceExCludes. Правильный параметр PackagingExCludes.

Пример использования (исключает веб-инф / статус / папку из войны):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <warName>searchservice-web</warName>
        <packagingExcludes>WEB-INF/statics/</packagingExcludes>
    </configuration>
</plugin>

Project Structure

Inforder Чтобы удалить исходные файлы, которые я использовал конфигурацию ниже в Maven

 <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
      <packagingExcludes>
        eb-app/app/**,eb-app/node_modules/**,eb-app/public/**,eb-app/server/**,eb-app/tests/**,eb-app/tmp/**,eb-app/vendor/**,eb-app/*
      </packagingExcludes>
    </configuration>
  </plugin>

Имел сценарий, где мне пришлось исключить двух папок, которые могут быть сопоставлены *scripts И они были в папке ресурсов. Первая путаница была ли обеспечить ценность исключения как src/main/resources/*scripts или как WEB-INF/classes/*scripts, то есть структура предварительной или после компиляции.

Был намного важен для обеспечения /** Чтобы получить весь каталог, исключенный из файла войны. В моем случае, *scripts/**.

Вот окончательная конфигурация, которая работала:

    <packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top