Необязательное отображение разделов в плагине Maven RPM?

У меня есть отображение подключаемого модуля RPM Maven, таким образом:

<mapping>
  <directory>/etc/myconfig</directory>
  <configuration>true</configuration>
  <sources>
    <source>
      <location>${project.build.directory}</location>
      <includes>
        <include>*.conf</include>
      </includes>
    </source>
  </sources>
</mapping>

Однако, в зависимости от процесса упаковки, в / etc может быть ноль файлов.conf. Когда это происходит, плагин RPM сообщает:

[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.1.2:rpm (default) on project clients: 
Unable to copy files for packaging: You must set at least one file. -> [Help 1]

Есть ли способ создать раздел сопоставления, в который можно добавить нулевые файлы?

1 ответ

Решение

Лучшее, что я смог придумать, это опустить <includes> тег, который берет все из того, что указано в <location>,

место нахождения

Файл или каталог для включения. Если указан каталог, все файлы и подкаталоги также включены.

Вам нужно будет максимально точно указать путь для этих отображений, в которых не указаны шаблоны включения. я добавил confs в расположении ниже, чтобы избежать втягивания во все остальное в project.build.directory,

Даже если файлы не выбраны, <directory> все еще будет создан.

<mapping>
  <directory>/etc/myconfig</directory>
  <configuration>true</configuration>
  <sources>
    <source>
      <location>${project.build.directory}/confs</location>   
    </source>
  </sources>
</mapping>

Я тоже столкнулся с той же проблемой и очень старался ее решить. Сообщение об ошибке не так интуитивно понятно. Решить такую ​​проблему действительно сложно.

ошибка:
[ERROR] Не удалось выполнить цель org.codehaus.mojo:rpm-maven-plugin:2.1-alpha-3x: connected-rpm (generate-rpm) в проекте XXX_assembly: невозможно скопировать файлы для упаковки: необходимо установить в хотя бы один файл. -> [Справка 1]

Я использовал следующую версию плагина *

<groupId>org.codehaus.mojo</groupId>
                        <artifactId>rpm-maven-plugin</artifactId>
                        <version>2.1-alpha-3x</version>

* Ниже мой тег сопоставления из плагина

Это сопоставление пытается скопировать batch-test-1.0.war из местоположения../batch/target в целевое местоположение в ${app.prefix}/batch.

Проблема заключалась в том, что тег имел неправильное имя файла войны, который не существует. Я дал неправильное имя файла войны, поэтому Maven жаловался, что ему нужно что-то копировать. Я исправил это, указав правильное имя моего файла войны, как показано ниже. пакет-тест-1.0.war

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