Приоритетная упаковка не включает и упаковку включает плагин maven war

Недавно я настроил свое приложение на использование «тонких войн», описанных на codehaus (заголовок: «Решение проблемы тонких войн»). В основном я исключаю из войны все банки и добавляю их как зависимость войны и pom от уха. Теперь столкнулся с проблемой с двумя банками. Поэтому для меня логичным было включить их в файл войны с помощью packageInclude.

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
        <packagingIncludes>WEB-INF/lib/A.jar, WEB-INF/lib/B.jar</packagingIncludes>
    </configuration>
</plugin>

Использование регулярного выражения, как показано в de документацию по плагину и этот ответ, но, похоже, он ничего не сделал. Он просто исключает все.

В исходном коде плагина I обнаружил, что он использует DocumentScanner из org.codehaus.plexus »plexus-utils. Я не совсем понял, как это работает.

Я думал, что это не проблема. Но что я делаю не так? Может ли быть, что включение не работает, когда A также является транзитивной зависимостью C?

Изменить: играет ли версия плагина какую-либо роль? Сейчас я использую 2.6, но раньше использовалась версия 2.1-alpha-2.


person pjanssen    schedule 14.07.2015    source источник


Ответы (2)


Нашел также этот ответ. Следующая строка (и только эта) работает:

<packagingExcludes>%regex[WEB-INF/lib/(?!common-A|common-B).*.jar]</packagingExcludes>

Только common-A-x.x.jar и common-B-x.x.jar находятся в WEB-INF/lib папке файла войны. Должно быть возможно извлечь общую часть в регулярном выражении, но то, что я пробовал, не сработало.

person pjanssen    schedule 14.07.2015

попробуйте использовать include только без подстановочного знака исключает определение. Поскольку вы исключаете все банки, это съедает ваши включения. Насколько я понимаю документ (и из моих воспоминаний), по умолчанию включается все, но как только вы укажете включение, плагин будет включать только ваш список jar-файлов.

person shillner    schedule 14.07.2015
comment
Вы правы, но все остальное тоже исключено. Так что нет .jsp и т. Д. - person pjanssen; 14.07.2015
comment
Хорошо, а как выглядело ваше исключенное регулярное выражение? Может, это было неправильно. Мне также нужно было использовать регулярные выражения, и все работало нормально. Но если - person shillner; 14.07.2015
comment
К сожалению, остальных не хватало. Я хотел сказать, что я бы по возможности избегал регулярных выражений, поскольку они плохо обслуживаются. Кстати. Весь этот упаковочный механизм maven плох и слишком сложен. - person shillner; 14.07.2015
comment
Я бы хотел избежать регулярного выражения, если это возможно, но в данный момент я бы не знал, как это сделать. Первоначальный вопрос остается, что имеет приоритет, включить или исключить и каковы последствия этого. - person pjanssen; 14.07.2015