У меня есть существующий файл англичанина, который включает сменный банкой знатоком раздел. Это работает за целью тестовой банки и в настоящее время исключает несколько каталогов:
<excludes>
<exclude>...</exclude>
<exclude>...</exclude>
<exclude>somedir/**</exclude>
</excludes>
Я должен включать файл в somedir каталог, но не учесть остальную часть файлов в somedir каталоге. Я считал, что включает, имеют приоритет, исключает так, я добавил что-то как следующее (было, не включает раздел прежде):
<includes>
<include>somedir/somefile.xml</include>
</includes>
Это заканчивает тем, что создало файл банки для теста только с несколькими файлами в нем (просто материал в META-INF). Файл, который я включал, не находится в банке также. То, что я ожидал бы, является банкой, которая идентична банке, которая была создана, прежде чем мой включает изменение с одним дополнительным файлом.
Что я пропускаю здесь?
Во-первых, если вы не укажете ни один включает
, тогда плагин maven jar будет использовать ** / **
в качестве шаблона по умолчанию (см. oampjAbstractJarMojo
) т.е. он будет включать все. Если вы переопределите этот шаблон по умолчанию, плагин, очевидно, будет включать только то, что вы ему скажете.
Во-вторых, сканирование каталогов выполняется в конце ocpuDirectoryScanner
, и это то, что написано в документации класса:
* The idea is simple. A given directory is recursively scanned for all files * and directories. Each file/directory is matched against a set of selectors, * including special support for matching against filenames with include and * and exclude patterns. Only files/directories which match at least one * pattern of the include pattern list or other file selector, and don't match * any pattern of the exclude pattern list or fail to match against a required * selector will be placed in the list of files/directories found.
Итак, с вашим текущим набором включает
и исключает
шаблоны, только ОДИН файл будет соответствовать шаблону включения, но также совпадет с шаблоном исключения и, таким образом, не будет выбран, и вы получите почти пустой архив (только с манифестом по умолчанию см. oampjAbstractJarMojo # createArchive ()
).
Я не могу дать вам точное решение, но вам явно нужно переосмыслить способ включения / исключения файлов (например, добавить больше включает
шаблонов, удалить
, или использование включает только
, или использование исключает только
).