maven-clean-plugin не удаляет все указанные каталоги

В моем проекте .pom Я настроил maven-clean-plugin вот так:

<plugin>
  <artifactId>maven-clean-plugin</artifactId>
  <version>2.6.1</version>
  <configuration>
    <filesets>
      <fileset>
        <directory>src/main/webapp/bower_components</directory>
      </fileset>
      <fileset>
        <directory>node_modules</directory>
      </fileset>
      <fileset>
        <directory>node</directory>
      </fileset>
    </filesets>
  </configuration>
 </plugin>

Целью плагина является удаление каталогов, которые созданы frontend-maven-plugin, Во всяком случае, последний работает хорошо.


проблема

Теперь проблема в том, что ни по какой причине ни одна из перечисленных выше папок никогда не удаляется. И это всегда тот, что "посередине". Я добавил 3 filesets и всегда 2-й не удаляется, смотрите логи:

[INFO] Deleting /src/main/webapp/bower_components (includes = [], excludes = [])
[INFO] Deleting /node_modules (includes = [.bindings], excludes = [])
[INFO] Deleting /node (includes = [], excludes = [])

Если я изменю порядок папок:

[INFO] Deleting /src/main/webapp/bower_components (includes = [], excludes = [])
[INFO] Deleting /node (includes = [.bindings], excludes = [])
[INFO] Deleting /node_modules (includes = [], excludes = [])

А также 2-й вариант всегда содержит эту часть: includes = [.bindings] что я считаю, приводит к тому, что папка не удаляется.

Почему это происходит и как это исправить?


РЕДАКТИРОВАТЬ, журнал отладки

mvn -X clean результат, я думаю, вот где он ломается:

http://pastebin.com/ep1i2Bjk

После разбора pom.xml он читает конфигурацию с этим параметром. Однако я не положил это там.

1 ответ

Решение

ОК, я нашел проблему! Это на самом деле ошибка в плагине и уже сообщается. Это влияет на maven-clean-plugin 2.6.1 ,

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

ситуация

У вас есть родительский проект и дочерний проект, оба должны использовать плагин.

Сейчас;

  • в родительском проекте вы указываете несколько наборов файлов.
  • в дочернем проекте вы указываете несколько наборов файлов.

То, что я думаю, ожидается:

Плагин читает как родительские, так и дочерние наборы файлов и очищает их все.

Что просходит:

Плагин перезаписывает родительские наборы файлов дочерними. Наборы файлов переопределяются по порядку. ОДНАКО родительская конфигурация для набора файлов не очищается!


Моя ситуация: Parent.pom:

<filesets>
   <fileset>
      <directory>test-output</directory>
   </fileset>
   <fileset>
     <directory>${basedir}/</directory>
     <includes>
        <include>.bindings</include>
     </includes> 
   </fileset>
</filesets>

Детский пом:

<filesets>
    <fileset>
        <directory>node</directory>
    </fileset>
    <fileset>
        <directory>node_modules</directory>
    </fileset>
    <fileset>
        <directory>src/main/webapp/bower_components</directory>
    </fileset>
</filesets>

И с вышеуказанной информацией; Конфигурация, читаемая плагином:

<filesets>
    <fileset>
        <directory>node</directory>
    </fileset>
    <fileset>
        <directory>node_modules</directory>
        <includes>
            <include>.bindings</include>
        </includes>
    </fileset>
    <fileset>
        <directory>src/main/webapp/bower_components</directory>
    </fileset>
</filesets>

вместо конфига с 5 наборами файлов.

Отчет об https://issues.apache.org/jira/browse/MCLEAN-64

ПОСТАНОВИЛИ

Для настройки есть некоторые магические атрибуты, чтобы указать, как следует комбинировать элементы xml. В этом случае добавьте объединение.children="append" к тегу наборов файлов. Более подробную информацию об этом можно найти на странице справки POM. http://maven.apache.org/pom.html

Стоит отметить, что достаточно установить combine.children="append" в детском проекте .pom,

Другие вопросы по тегам