Необязательное отображение разделов в плагине 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