¿Dónde debo colocar el archivo log4j.properties cuando utilizo los directorios convencionales de Maven?
java
maven
configuration
log4j
user496949
fuente
fuente
Respuestas:
src/main/resources
es la "colocación estándar" para esto.Actualización: lo anterior responde a la pregunta, pero no es la mejor solución. Vea las otras respuestas y los comentarios sobre esto ... probablemente no enviaría sus propias propiedades de registro con el jar, sino que lo dejaría al cliente (por ejemplo, servidor de aplicaciones, entorno de escenario, etc.) para configurar el registro deseado. Por lo tanto, ponerlo
src/test/resources
es mi solución preferida.Nota: Hablando de salir de la configuración de registro concreto para el cliente / usuario, debe considerar sustituir
log4j
conslf4j
en su aplicación.fuente
resources
ylog4j.properties
en la carpeta mencionada en la respuesta.src/main/resources
se copiarán por defecto atarget/classes
Solo ponerlo lo
src/main/resources
agrupará dentro del artefacto. Por ejemplo, si su artefacto es un JAR, tendrá ellog4j.properties
archivo dentro, perdiendo su punto inicial de hacer que el registro sea configurable.Por lo general, lo pongo
src/main/resources
y lo configuro para que se envíe al destino de la siguiente manera:Además, para que log4j lo vea realmente, debe agregar el directorio de salida a la ruta de clase. Si su artefacto es un JAR ejecutable, probablemente haya utilizado el complemento maven-assembly para crearlo. Dentro de ese complemento, puede agregar la carpeta actual del JAR a la ruta de clase agregando una
Class-Path
entrada de manifiesto de esta manera:Ahora el archivo log4j.properties estará justo al lado de su archivo JAR, configurable independientemente.
Para ejecutar su aplicación directamente desde Eclipse, agregue el
resources
directorio a su classpath en su configuración de ejecución:Run->Run Configurations...->Java Application->New
seleccione laClasspath
pestaña, seleccioneAdvanced
y busque susrc/resources
directorio.fuente
${project.build.directory}
o debería editarse en la ruta real en la que vive el proyecto en mi disco local?Algunas cuentas de "minería de datos"
src/main/resources
son el lugar típico.Resultados en la búsqueda de código de Google :
src/main/resources/log4j.properties
: 4877src/main/java/log4j.properties
: 215fuente
resources
noresource
, si no recuerdo mal.resource
fue solo un error tipográfico.Los recursos utilizados para inicializar el proyecto se colocan preferiblemente en la carpeta src / main / resources . Para permitir la carga de estos recursos durante la compilación, uno simplemente puede agregar entradas en el proyecto pom.xml en maven como recurso de compilación
Otros archivos .properties también se pueden guardar en esta carpeta utilizada para la inicialización. El filtrado se establece como verdadero si desea tener algunas variables en los archivos de propiedades de la carpeta de recursos y llenarlas desde los archivos de propiedades de filtros de perfil, que se guardan en src / main / filters que se configura como perfiles pero es un caso de uso completamente diferente . Por ahora, puedes ignorarlos.
Este es un gran recurso de complementos de recursos de Maven , es útil, solo navega a través de otras secciones también.
fuente
Cuando colocar archivos de recursos en otra ubicación no es la mejor solución que puede usar:
Por ejemplo, cuando los archivos de recursos (por ejemplo, jaxb.properties) profundizan en los paquetes junto con las clases Java.
fuente
Si su archivo log4j.properties o log4j.xml no se encuentra en src / main / resources, use este PropertyConfigurator.configure ("log4j.xml");
fuente
Agregue el siguiente código de las etiquetas de recursos en su pom.xml dentro de las etiquetas de compilación. significa que las etiquetas de recursos deben estar dentro de las etiquetas de compilación en su pom.xml
fuente