Неверные предупреждения при использовании maven-shade-plugin
Я использую maven-shade-plugin для простого проекта maven, плагин успешно включает все зависимости в финальную "заштрихованную" банку. Этот процесс хорошо работает каждый раз и дает именно то, что мне нужно.
При запуске "первого" времени (после clean
) плагин является тихим и производит очень малое количество выходных данных. Однако при повторном запуске (без clean
из последней сборки) есть много предупреждающих сообщений, таких как это;
[WARNING] We have a duplicate package/a/b/foo.class
[WARNING] We have a duplicate package/c/d/bar.class
Это только предупреждающие сообщения, и последний артефакт работает нормально.
Мой вопрос прост: как я могу безопасно обходить или подавлять эти предупреждающие сообщения, не запуская сначала clean
?
note: Возможным решением было бы перейти к плагину maven-assembly-plugin, но я бы предпочел не делать этого, потому что конфигурация для maven-shade-plugin очень приятная и простая.
Ответы
Ответ 1
Это потому, что он затеняет файлы в уже заштрихованную банку.
В первый раз, когда вы запускаете пакет после очистки, он создает банку.
Во второй раз, когда вы запускаете его, он не беспокоится о том, что банка уже существует.
С точки зрения плагинов оттенков он не знает, что это уже затенено, поэтому оно просто пытается добавить классы снова.
Мы можем заставить maven создавать банку каждый раз, настраивая плагин jar:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<forceCreation>true</forceCreation>
</configuration>
</plugin>
И это работает для меня. Либо это, либо просто сделать чистую установку