Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Регулярное выражение не работает с набором файлов Maven

Автор вопроса: ShriramОтветов: 1

Я пытаюсь использовать регулярное выражение в maven-assembly-plugin, которое показано ниже. Есть файлы с именами, начинающимися с ABC502. Я пытаюсь скопировать только обороты с суффиксом 3 или 4. Нижний не работает. имена rpm приведены ниже

ABC5023-номер_сборки.rpm

ABC5024-номер_сборки.rpm

ABC5025-номер_сборки.rpm

ABC5026-номер_сборки.rpm

<fileSet>
    <directory>${project.build.directory}/tar_content/stackcontents/</directory>
    <outputDirectory>scripts/data/rpms/</outputDirectory>
    <includes>
        <include>%regex[ABC502(3|4)]-*.rpm</include>
    </includes>
    <fileMode>0755</fileMode>
    <directoryMode>0755</directoryMode>
</fileSet>
  • Можете ли вы показать свой полный дескриптор сборки? Кроме того, насколько я знаю, в дескрипторе нет поддержки регулярных выражений? (Или вы можете дать ссылку на ссылку на это?)... khmarbaise 24.05.2016
  • @khmarbaise Действительно возможно использовать регулярное выражение maven.apache.org/plugins/maven-assembly-plugin/. Tunaki 24.05.2016

mavenmaven-assembly-plugin

Ответы

Ответ 1 · рейтинг 6 · Tunaki

Когда вы используете регулярное выражение для включить или исключить файлы с синтаксисом %regex[...], все выражения должны состоять из регулярных выражений. Вы не можете смешивать часть регулярного выражения с нормальной частью, когда она используется для сопоставления файлов.

Поэтому вам нужно использовать

<fileSet>
    <directory>${project.build.directory}/tar_content/stackcontents/</directory>
    <outputDirectory>scripts/data/rpms/</outputDirectory>
    <includes>
        <include>%regex[ABC502(3|4)-.*?\.rpm]</include>
    </includes>
    <fileMode>0755</fileMode>
    <directoryMode>0755</directoryMode>
</fileSet>

Это будет включать все файлы RPM, начиная с ABC5023 или ABC5024.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы