#java #maven #log4j #pom.xml #maven-shade-plugin
#java #maven #log4j #pom.xml #maven-shade-плагин
Вопрос:
У меня есть модуль, который создает две банки на основе двух исполнений тени. Я хочу, чтобы каждый из них объединял разные файлы log4j.properties в jar. У меня есть следующий трансформатор для каждого из исполнений в моем pom.xml:
<transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
<resource>log4j.properties</resource>
<file>log4j-ONE.properties</file>
</transformer>
В итоге я получаю оба файла log4j в обоих моих jar и ни один из них не использует его. Можно ли настроить трансформатор так, чтобы каждое из выполнений включало только соответствующий файл log4j-xxx.properties (переименованный в log4j.properties, чтобы log4j его использовал)?
Конечная цель состоит в том, чтобы каждый из jar записывал в разные файлы журналов, я не могу найти более простой способ сделать это.
Комментарии:
1. предположение с дальним прицелом…. но тег ресурса начинается с корня пакета (корня вашего файла jar… файл целевой папки (ecc) начинается с корня вашего проекта maven. Поэтому, если вы разместили log4j-ONE.properties в папке ресурсов, следует объяснить поведение
2. Да, это исправлено, спасибо.
3. приятно! пожалуйста, проверьте ответ ниже
Ответ №1:
Тег ресурса в конфигурации плагина shade запускает поиск содержимого из корня пакета (корня вашего jar-файла… целевая папка ecc) и тег file начинаются с корня вашего проекта maven. Поэтому, если вы поместили log4j-ONE.properties в папку ресурсов, следует объяснить поведение.