Куда мне поместить файл log4j.properties при использовании обычных каталогов Maven?
java
maven
configuration
log4j
user496949
источник
источник
Ответы:
src/main/resources
это "стандартное размещение" для этого.Обновление: приведенное выше отвечает на вопрос, но это не лучшее решение. Ознакомьтесь с другими ответами и комментариями по этому поводу ... вы, вероятно, не отправите свои собственные свойства ведения журнала вместе с jar, а вместо этого оставите его клиенту (например, серверу приложений, среде сцены и т.д.), чтобы настроить желаемое ведение журнала. Таким образом, это
src/test/resources
мое предпочтительное решение.Примечание. Говоря о том, чтобы оставить конкретную конфигурацию журнала клиенту / пользователю, вам следует подумать о замене
log4j
наslf4j
в своем приложении.источник
resources
иlog4j.properties
в папке, указанной в ответе.src/main/resources
будут скопированы по умолчанию вtarget/classes
Просто поместите его
src/main/resources
внутрь артефакта. Например, если ваш артефакт представляет собой JAR, у вас будетlog4j.properties
файл внутри него, потеряв исходную точку, позволяющую настраивать ведение журнала.Я обычно вставляю его
src/main/resources
и настраиваю выводить на цель так:Кроме того, чтобы log4j действительно его увидел, вы должны добавить выходной каталог в путь к классу. Если ваш артефакт представляет собой исполняемый JAR-файл, вы, вероятно, использовали maven-assembly-plugin для его создания. Внутри этого плагина вы можете добавить текущую папку JAR в путь к классу, добавив
Class-Path
запись в манифесте, например:Теперь файл log4j.properties будет находиться рядом с вашим файлом JAR, настраиваемый независимо.
Чтобы запустить приложение непосредственно из Eclipse, добавьте
resources
каталог в путь к классам в конфигурации запуска:Run->Run Configurations...->Java Application->New
выберитеClasspath
вкладку, выберитеAdvanced
и перейдите в свойsrc/resources
каталог.источник
${project.build.directory}
или его следует изменить на фактический путь, по которому проект живет на моем локальном диске?Некоторые «интеллектуального анализа данных» объясняют это
src/main/resources
типичным местом.Результаты поиска Google Code :
src/main/resources/log4j.properties
: 4877src/main/java/log4j.properties
: 215источник
resources
нетresource
, если я правильно помню.resource
была всего лишь опечатка.Ресурсы, используемые для инициализации проекта, предпочтительно помещать в папку src / main / resources . Чтобы включить загрузку этих ресурсов во время сборки, можно просто добавить записи в pom.xml в проект maven в качестве ресурса сборки.
Другие файлы .properties также могут храниться в этой папке, используемой для инициализации. Для фильтрации установлено значение true, если вы хотите иметь некоторые переменные в файлах свойств папки ресурсов и заполнять их из файлов свойств фильтров профиля, которые хранятся в src / main / filters, который установлен как профили, но это совсем другой вариант использования , Пока вы можете игнорировать их.
Это отличные плагины ресурсов maven , они полезны, просто просмотрите и другие разделы.
источник
Помещение файлов ресурсов в другое место - не лучшее решение, которое вы можете использовать:
Например, когда файлы ресурсов (например, jaxb.properties) попадают глубоко внутрь пакетов вместе с классами Java.
источник
Если ваш файл log4j.properties или log4j.xml не найден в src / main / resources, используйте этот PropertyConfigurator.configure ("log4j.xml");
источник
Добавьте приведенный ниже код из тегов ресурсов в свой pom.xml внутри тегов сборки. это означает, что теги ресурсов должны быть внутри тегов сборки в вашем pom.xml
источник